一个maven项目中有多个类有main方法,一次打出多个jar包使这些jar包有不同的主函数
解决方式一:通过多个pom文件打包
比如再写一个pom2.xml,使用命令 mvn install -f pom2.xml 指定pom文件进行打包
方式二:通过maven-assembly-plugin
案例:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>jar1</id>
<configuration>
<finalName>jar1</finalName>
<archive>
<manifest>
<mainClass>com.test.Test</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<phase>install</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
<execution>
<id>jar2</id>
<configuration>
<finalName>jar2</finalName>
<archive>
<manifest>
<mainClass>com.test.Test2</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<phase>install</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
扩展
方式二中可以打出两个jar包,名称为 jar1-jar-with-dependencies.jar 和 jar2-jar-with-dependencies.jar,这里后缀是自动加上的,怎么才能修改jar包的名称呢?
使用maven-antrun-plugin这个插件,通过move命令修改名称
详见 maven打完jar包之后将jar包放到指定位置总结 中的方式三