JAR (可执行)规范

创建可执行 JAR

spring-boot-maven-plugin

创建 JAR

maven-jar-plugin

(我们可以通过mvn help:describe 命令来查看插件、命令等操作的详细说明,比如我们在命令行执行mvn help:describe -Dplugin=org.apache.maven.plugins:maven-jar-plugin,便可以看到maven-jar-plugin插件的详细介绍)jar项目默认的打包工具。

该插件默认情况下只打包项目源码编译生成的class文件和资源文件,不会将项目依赖的jar包一起打包。

maven-war-plugin

war项目默认的打包工具,默认情况下会打包项目编译生成的.class文件、资源文件以及项目依赖的所有jar包。

maven-assembly-plugin

需要在pom文件的plugin元素中引入才可以使用,功能非常强大,是maven中针对打包任务而提供的标准插件。它是Maven最强大的打包插件,它支持各种打包文件格式,包括zip、tar.gz、tar.bz2等等,通过一个打包描述文件设置(src/main/assembly.xml),它能够帮助用户选择具体打包哪些资源文件集合、依赖、模块,甚至本地仓库文件,每个项的具体打包路径用户也能自由控制。

maven-shade-plugin

需要在pom文件的plugin元素中引入才可以使用,它可以让用户配置Main-Class的值,然后在打包的时候将值填入/META-INF/MANIFEST.MF文件。关于项目的依赖,它很聪明地将依赖的JAR文件全部解压后,再将得到的.class文件连同当前项目的.class文件一起合并到最终的

CLI包(可以直接运行的jar包)

中,这样,在执行CLI JAR文件的时候,所有需要的类就都在Classpath中了。