因为项目需要将多个文件打包成zip,然后直接上传部署,查询诸多资料,自己也做了小小总结,以供日后参考。
一、pom文件添加assembly依赖配置
<!-- 使用assembly插件打成zip -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- 指定assembly配置文件路径 -->
<descriptor>src/assembly/assembly.xml</descriptor>
<!-- 指定打成zip文件名 -->
<finalName>demo</finalName>
</configuration>
<executions>
<execution>
<!-- 在执行package打包时,执行assembly插件 -->
<phase>package</phase>
<goals>
<!-- 执行assembly一次 -->
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
二、assembly.xml配置文件简要说明
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<!-- 必输项,与pom文件filename标签值组成最后的zip文件名 -->
<id>test</id>
<!-- 打包方式 -->
<formats>
<format>zip</format>
</formats>
<!--在打包文件时,是否在最外层包装一层目录,比如我们打包一个lib文件夹到zip文件中, 如果我们includeBaseDirectory设置为true,则lib结构为${BaseDirectory}/lib,如果设置为false,则lib结构为lib -->
<includeBaseDirectory>false</includeBaseDirectory>
<!--多文件夹打包-->
<fileSets>
<!--单文件夹打包-->
<fileSet>
<!--文件夹的相对路径或绝对路径-->
<directory>target/assembly-batch/lib</directory>
<!--输出文件目录-->
<outputDirectory>lib</outputDirectory>
<!--选择文件夹下所包含内容-->
<includes>
<include>**/*</include>
</includes>
</fileSet>
<fileSet>
<directory>target/assembly-batch/scripts</directory>
<outputDirectory>scripts</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>
<!--多文件打包-->
<files>
<!--单文件打包-->
<file>
<!--源文件路径-->
<source>target/assembly-batch/assembly-batch.jar</source>
<!--输出目录,"/"表示根目录-->
<outputDirectory>/</outputDirectory>
</file>
<file>
<source>target/assembly-batch/startup.sh</source>
<outputDirectory>/</outputDirectory>
</file>
</files>
</assembly>