我希望能够使用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>
答案 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
为了使这更容易使用,请创建个人资料
<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。