介绍
maven-plugins-assembly插件用作项目打包的,常见的打包类型有:
- zip
- tar
- tar.gz (or tgz)
- tar.bz2 (or tbz2)
- tar.snappy
- tar.xz (or txz)
- jar
- dir
- war
pom.xml配置插件
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>website_admin</finalName><!--项目名-->
<descriptors>
<descriptor>assembly/assembly.xml</descriptor><!--配置描述文件路径-->
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id><!--这个用于继承合并-->
<phase>package</phase><!--绑定到package生命周期阶段-->
<goals>
<!--它用于创建所有的程序集,表示它只执行一次-->
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
assembly.xml描述文件
<assembly>
<id>1.0</id>
<!--打包格式-->
<formats>
<format>tar.gz</format>
</formats>
<fileSets>
<fileSet>
<directory>assembly/bin</directory><!-包含该目录-->
<!-指定当前要包含的目录的目的地-->
<outputDirectory>bin</outputDirectory>
<!--指定文件属性,使用八进制表达,分别为(User)(Group)(Other)所属属性,默认为 0644-->
<fileMode>0755</fileMode><!-文件的权限,所有文件权限为0777-->
<directoryMode>0755</directoryMode> <!-- 所有目录权限为0777 -->
</fileSet>
<fileSet>
<directory>assembly/config</directory>
<outputDirectory>config</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
<fileSet>
<directory>target</directory><!--包含target文件所 -->
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>logs</outputDirectory>
<fileMode>0755</fileMode>
<excludes>
<exclude>**/*</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory> <!-- 输出到lib目录下 -->
<includes>
<include>test.project:test-java</include> <!-- 依赖的库的路径,格式为groupId:artifactId-->
</includes>
<fileMode>0755</fileMode>
<directoryMode>0755</directoryMode>
<unpack>true</unpack> <!-- 是否解压依赖的包 -->
<unpackOptions>
<excludes>
<exclude>classes/**</exclude> <!-- 排除classes目录及其所有子文件(包括子目录-->
<exclude>test/**</exclude> <!-- 排除test目录及其所有子文件(包括子目录) -->
</excludes>
</unpackOptions>
</dependencySet>
</dependencySets>
</assembly>
参考:https://segmentfault.com/a/1190000016237395
参考:https://blog.csdn.net/shi2huang/article/details/79995474
官方文档介绍:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html