首先说结论,是结合maven的打包插件:maven-assembly-plugin
maven中常见的打包插件有三种:
1.maven-jar-plugin --- 打包普通的project
2.maven-shade-plugin --- 打包可执行的jar
3.maven-assembly-plugin ---打包定制化依赖,定制化打包结构
使用:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4.1</version> <configuration> <!-- get all project dependencies --> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <!-- MainClass in mainfest make a executable jar --> <archive> <manifest> <mainClass>com.demo.Demo</mainClass> </manifest> </archive> </configuration> <executions> <!-- 配置执行器 --> <execution> <id>make-assembly</id> <!-- 绑定到package命令的生命周期上 --> <phase>package</phase> <goals> <!-- 只运行一次 --> <goal>single</goal> </goals> </execution> </executions> </plugin>
执行mvn clean package即可。