仅个人看法,如有不对的地方,请各位大佬指正。
参考:
1. https://blog.csdn.net/bluishglc/article/details/7596118
2. https://blog.csdn.net/ziwuzhulin/article/details/87799485
3. https://blog.csdn.net/qq_39653507/article/details/82191445
maven-compiler-plugin:
设置编译项目jdk版本与编码,target版本一定大于等于source版本,编译源文件版本(source)与目标得到的class文件版本(target)可不一致,例如编译需用jdk1.7版本,得到的class需要能通过jdk1.8版本的情况
maven-jar-plugin:
打jar包,无依赖包。package中指定jar,不单独在plugin中指定,使用默认版本
maven-dependency-plugin:
依赖处理插件,与maven-jar-plugin一起使用,可打能正常运行完整的jar包
maven-assembly-plugin:
将项目打成可执行的jar包,主要打发布包使用,通过一个xml文件定义更多自定义打包项
maven-shade-plugin:
将项目打成可执行的jar包
assembly与shade的区别:
对xsd文件的处理方式不同,assembly是找到一个放入最终打出的jar包里,但是这样有个问题是当工程依赖到不同版本的依赖包时只能将某一个版本的xsd配置文件放入最终打出的jar包里,这就有可能遗漏了一些版本的xsd的本地映射,会报错;shade插件打包时在对spring.schemas文件处理上,它能够将所有jar里的spring.schemas文件进行合并,在最终生成的单一jar包里,spring.schemas包含了所有出现过的版本的集合
maven-war-plugin:
打war包,有依赖包。package中指定war,不单独在plugin中指定,使用默认版本
maven-surefire-plugin:
Maven通过Maven Surefire Plugin插件执行单元测试。(通过Maven Failsafe Plugin插件执行集成测试),也可用于打包时跳过测试
spring-boot-maven-plugin:
能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。否则不管打的是jar包还是war包,都会提示(MANIFEST.MF中)找不到主清单
maven打jar包的三种方式:
1. 使用maven-jar-plugin和maven-dependency-plugin插件打包
2. 使用maven-assembly-plugin插件打包
3. 使用maven-shade-plugin插件打包
具体使用方法查看参考3