maven打包完成后(打成jar/war包),需要进一步将生成的jar/war包与其他文件(如资源文件、配置文件、数据库脚本等)打包成一个zip/tar.gz,用于归档获取推送到测试/运行服务器
编译发布工具:maven
插件:maven-assembly-plugin
配置
在主pom(顶层pom,目前我们是全部打包)中的下图区域中加入插件的配置。
配置位置:
<build> <plugins> <!--添加maven-asselbly插件--> </plugins> </build>
配置内容:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>版本号<version> <executions> <execution> <id>make-assembly1</id> <!-- 绑定到package生命周期 --> <phase>package</phase> <goals> <!-- 只运行一次 --> <goal>single</goal> </goals> <configuration> <!-- 配置描述符文件 --> <descriptor>assembly_vgs.xml</descriptor> <finalName>vgs</finalName> <!-- 也可以使用Maven预配置的描述符 <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> --> </configuration> </execution> </executions> <configuration> <!-- 配置描述符文件 --> <descriptor>src/main/assembly/assembly.xml</descriptor> <!-- 也可以使用Maven预配置的描述符 <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> --> </configuration> </plugin>
如果需要打多个包则,添加多个 <execution></execution>
即可
编写打包描述文件
<assembly> <id></id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <!--发布模板及静态第三方文件引入,由于来自其他项目(health_installer) 如果构建项目名称改变需要将Jenkins_install替换成新的项目--> <!--前置机的组包--> <fileSet> <directory>health-services/target/</directory> <!--服务lib包-OK--> <includes> <include>services-c3m-*.jar</include> </includes> <outputDirectory>c3m</outputDirectory> </fileSet> <fileSet> <directory>bin/components/config</directory> <!--软件配置文件目录-OK --> <includes> <include>application-common.properties</include> <include>application-c3m.properties</include> </includes> <outputDirectory>c3m/config</outputDirectory> </fileSet> </fileSets> <!-- <files> <file> <source>${project.artifactId}-${project.version}.jar</source> <outputDirectory>.</outputDirectory> </file> </files> --> <dependencySets> <dependencySet> <unpack>false</unpack> <!--<scope>runtime</scope>--> <outputDirectory>lib</outputDirectory> </dependencySet> </dependencySets> </assembly>