maven-自定义打包maven-assembly-plugin插件
- 2020 年 3 月 16 日
- 筆記
插件名称:maven-assembly-plugin 目前最新的版本:3.2.0 作用:该插件可以使用户根据自己的需求自定义打包规则和打包类型
pom文件配置示例:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.2.0</version> <configuration> <finalName>testProject</finalName> <!-- 配置打包后的文件前缀名 --> <descriptors> <descriptor>src/main/assembly/package.xml</descriptor> <!-- 配置文件路径 --> </descriptors> </configuration> <executions> <!-- 配置assembly goals --> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
package.xml文件自定义打包配置:
<?xml version="1.0" encoding="UTF-8"?> <assembly> <!-- 最终打包文件的后缀,格式为 ${fileName}-bin --> <id>bin</id> <!-- 最终打包成一个用于发布的zip文件 --> <formats> <format>zip</format> </formats> <!-- 把依赖的jar包打包进zip的lib目录下--> <dependencySets> <dependencySet> <!-- 不使用项目的artifact --> <useProjectArtifact>false</useProjectArtifact> <!-- 打包进zip文件下的lib目录中 --> <outputDirectory>lib</outputDirectory> <!-- 第三方jar不要解压 --> <unpack>false</unpack> </dependencySet> </dependencySets> <!-- 文件配置 --> <fileSets> <!-- 把项目的配置文件,打包进zip包的config目录下 --> <fileSet> <!-- 配置项目中需要被打包的文件的存储路径 --> <directory>${project.basedir}/src/main/resources/${env}</directory> <outputDirectory>/config</outputDirectory> <includes> <!-- 可以指定单个文件 --> <!--<include>project.config</include>--> <!-- 可以直接指定所有文件 --> <include>*.*</include> </includes> </fileSet> <!-- 把项目的配置文件,打包进zip包的根目录下 --> <fileSet> <directory>${project.basedir}/src/main/resources/${env}</directory> <outputDirectory></outputDirectory> <includes> <include>scf*.xml</include> </includes> </fileSet> <!-- 把项目自己编译出来根目录下的jar文件,打包进zip文件的根目录 --> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory></outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <!-- 把项目自己编译出来的jar文件夹下的jar文件,去除第三方jar,打包进zip文件的根目录 --> <fileSet> <directory>${project.build.directory}/jar</directory> <outputDirectory></outputDirectory> <excludes> <exclude>lib/*.jar</exclude> </excludes> <includes> <include>*.jar</include> </includes> </fileSet> </fileSets> </assembly>
运行maven的package后,会进行编译和打包,按照上述的配置会多产生一个testProject-bin.zip
文件 或者直接运行plugins-assembly下的assembly:single
,这样项目不会重新编译,只会将相应的文件按照上述配置打包成testProject-bin.zip
文件
testProject-bin.zip文件解压后的目录结构: – testProject-bin.zip – testProject – — config – — – project.config – — – project2.config – — lib – — – log4j-core-2.8.2.jar – — – mybatis-3.2.3.jar – — – … – — testProject.jar – — log4j2.xml
下面对上述简单介绍一下:
id:添加到打包文件名的标识符,用来做后缀;例如bin,格式为 ${fileName}-bin formats:是assembly插件支持的打包文件格式,有zip、tar、tar.gz、tar.bz2、jar、war。可以同时定义多个format;如果按上面的配置,生成的文件就是${fileName}-bin.zip。
dependencySets/dependencySet 设置工程依赖文件在打包时的属性。也与fileSets大致相同,不过还有两个特殊的配置:
- unpack:布尔值,false表示将依赖以原来的JAR形式打包,true则表示将依赖解成*.class文件的目录结构打包。
- scope:表示符合哪个作用范围的依赖会被打包进去。compile与provided都不用管,一般是写runtime。
fileSets/fileSet fileSet用来设置一组文件在打包时的属性
- directory:源目录的路径
- includes/excludes:设定包含或排除哪些文件,支持通配符
- fileMode:指定该目录下的文件属性,采用Unix八进制描述法,默认值是0644
- outputDirectory:生成目录的路径
files/file 与fileSets大致相同,不过是指定单个文件,还可以通过destName属性来设置与源文件不同的名称
参考:官网: assembly插件官网介绍
如果转载此博文,请附上本文链接,谢谢合作~ : https://liyangyang.blog.csdn.net/
如果感觉这篇文章对您有所帮助,请点击一下“喜欢”或者“关注”博主,您的喜欢和关注将是我前进的最大动力!