需求
一个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包放到指定位置总结 中的方式三
文章知识点与官方知识档案匹配,可进一步学习相关知识