一般不包含第三方依赖,
可以结合maven-dependency-plugin插件把其他依赖也一起打包
示例:
org.apache.maven.plugins maven-jar-plugin true lib/ cn.note.swing.SpringViewApplication
shade打包一般够用, 但是如果常用的配置项不能满足需求时,可以使用maven-assembly-plugin
示例:
org.apache.maven.plugins maven-shade-plugin 3.2.1 cn.note.swing.deploy.SingleAutoHelper package shade *:* META-INF/*.SF META-INF/*.DSA META-INF/*.RSA
相对于maven-shade-plugin比较复杂一些,但是对于特殊需要时 ,可以考虑使用
示例
org.apache.maven.plugins maven-assembly-plugin 3.0.0 package single cn.note.swing.SpringViewApplicationcation true lib/ lib/*.jar jar-with-dependencies ${project.basedir}/assembly/release.xml
常用的配置信息:
| 字段 | 解析 |
|---|---|
| formats | 是assembly插件支持的打包文件格式,有zip、tar、tar.gz、tar.bz2、jar、war。可以同时定义多个format |
| id | 是添加到打包文件名的标识符,用来做后缀。也就是说,如果按上面的配置,生成的文件就是artifactId − {artifactId}-artifactId−{version}-assembly.tar.gz |
| fileSets/fileSet | 用来设置一组文件在打包时的属性 |
| directory | 源目录的路径 |
| includes/excludes | 设定包含或排除哪些文件,支持通配符 |
| fileMode | 指定该目录下的文件属性,采用Unix八进制描述法,默认值是064 |
| outputDirectory | 生成目录的路径 |
| files/file | 与fileSets大致相同,不过是指定单个文件,并且还可以通过destName属性来设置与源文件不同的名称 |
| dependencySets/dependencySet | 用来设置工程依赖文件在打包时的属性,也与fileSets大致相同 |
| dependencySet-unpack | 布尔值,false表示将依赖以原来的JAR形式打包,true则表示将依赖解成*.class文件的目录结构打包 |
| dependencySet-scope | 表示符合哪个作用范围的依赖会被打包进去。compile与provided都不用管,一般是写runtime |
spring-boot-maven-plugin 为基于maven-assembly-plugin的封装,为了解决特殊的resources资源文件下的文件冲突问题. 如:spring.schemas和spring.handlers
示例:
org.springframework.boot spring-boot-maven-plugin cn.note.helper.NoteHelperApplication ZIP repackage
参考文章:https://www.kongzid.com/archives/mvn1#fulu