一个普通java项目打包一个单个可执行jar包,有以下几个方法:
Maven方式
- maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;
- maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;
- maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等
java jar命令方式
网上有一篇博客写的比较好,总结到位:
https://www.cnblogs.com/mq0036/p/8566427.html
这里记录一下 assembly 方式:,在pom.xml文件里面增加 plugin,记得指定主类,例如:com.test.MailApplication
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>make-assembly</id>
<!-- 绑定到package生命周期 -->
<phase>package</phase>
<goals>
<!-- 只运行一次 -->
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 配置描述符文件
<descriptor>src/main/assembly/assembly.xml</descriptor>
也可以使用Maven预配置的描述符 -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.test.MailApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>