Maven自定义打包插件Assembly Plugin简单使用

时间:2021-08-15 17:16:55

使用Assembly Plugin实现自定义打包

1.修改pom.xml

<!-- 编译时自动打包,规则见distribution.xml文件-->
<build>
<plugins>
<!-- 编译时自动打包,规则见distribution.xml文件-->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<!--描述文件路径 -->
<descriptor>src/assembly/distribution.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>

appendAssemblyId属性控制是否在生成的打包文件的文件名中包含assembly id

descriptor属性指定maven-assembly-plugin的配置文件,我设置的是src/assembly/distribution.xml 容许使用多个,功能强大当然用法也复杂,对于简单情况一个足矣。

execution的设置是为了将maven-assembly-plugin继承到标准的maven打包过程中,这样在运行maven-package时就会执行maven-assembly-plugin的操作,从而实现我们需要的自定义打包。

2.编辑distribution.xml

<assembly>
<id>bin</id>
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>conf</directory>
<outputDirectory>conf</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

简单语法介绍
1) format format=zip设置打包的最终文件格式为zip. 支持的其他格式还有gz,tar,tar.gz,tar.bz2
2) fileset

<fileSet>
<directory>bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>

将bin目录下的文件打包到根目录(bin)下.<fileMode>0755</fileMode>指明bin目录下所有文件的权限为755

3) dependencySets

<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>test</scope>
</dependencySet>

将scope为test的依赖包打包到lib目录下

详细语法介绍:Assembly Descriptor Format reference