一个普通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>