多个maven-assembly-plugin配置

时间:2014-01-06 19:24:51

标签: maven maven-assembly-plugin

我希望能够使用maven-assembly-plugin产生不同的结果,具体取决于maven的调用? 更确切地说:我想在mainClass之间切换。

最好的方法是什么?我可以创建两个不同的目标来完成这项工作吗?或者我可以将参数与调用程序集一起使用:single?

我想到了类似下面的内容,但不知道如何有选择地执行。

   <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>my.stuff.Main1</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>-main1</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>

    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>my.stuff.Main2</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>-main2</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>

1 个答案:

答案 0 :(得分:2)

也许这个

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <archive>
      <manifest>
        <mainClass>${mainClass}</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
      <descriptorRef>${assemblyRef}</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>

并使用参数-DmainClass=my.stuff.Main1 -DassemblyRef=-main1

调用maven

为了使这更容易使用,请创建个人资料

<profiles>
    <profile>
      <id>main1</id>
      <properties>
        <mainClass>my.stuff.Main1</mainClass>
        <assemblyRef>-main1</assemblyRef>
      </properties>
    </profile>
    <profile>
      <id>main2</id>
      <properties>
        <mainClass>my.stuff.Main2</mainClass>
        <assemblyRef>-main2</assemblyRef>
      </properties>
    </profile>
</profiles>

并使用参数-Pmain1调用maven。