Welcome

首页 / 软件开发 / 数据结构与算法 / Maven插件之maven-assembly-plugin

Maven插件之maven-assembly-plugin2014-03-29 csdn博客 wangjunjun2008使用Maven对Web项目进行打包,默认为war包;但有些时候,总是希望打成zip包(亦或其他压缩包), maven-war-plugin插件就无能为力了,这时就用到了maven-assembly-plugin插件了,官方网址:

http://maven.apache.org/plugins/maven-assembly-plugin/

该插件能打包成指定格式分发包,更重要的是能够自定义包含/排除指定的目录或文件(遗留项目中, 过滤配置文件时,或者仅仅需要发布图片或者CSS/JS等指定类型文件时,发挥作用)

该插件使用如下:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.4</version><configuration><appendAssemblyId>false</appendAssemblyId><descriptors><descriptor>${basedir}/assembly.xml</descriptor> <!-- Assembly 描述符文件 --><!-- <descriptor>src/main/assembly/assembly.xml</descriptor> --></descriptors></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin>
如果所示,绑定到package阶段,自动打包;需要指定一个Assembly描述符文件,该文件指定了打包格式, 包含的文件/过滤的文件等信息,可以同时指定多个描述符文件,打包成不同的格式;

以下是assembly.xml文件内容(该内容表示,打包时,排除WEB-INF/lib目录下的所有文件):

<assembly xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd"><id>full</id><formats><format>zip</format> <!--打包文件格式--></formats><includeBaseDirectory>true</includeBaseDirectory><fileSets> <fileSet><outputDirectory>/</outputDirectory><directory>WebRoot</directory><includes><include>**/*</include></includes><excludes><exclude>WEB-INF/lib/*</exclude></excludes></fileSet></fileSets></assembly>
如此即可。