assembly插件介绍:http://maven.apache.org/plugins/maven-assembly-plugin/
assembly:single:http://maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html
assembly配置样例:http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html
重点知识:
1、assembly插件是用来对项目的文件进行打包;
2、对哪些文件进行打包,用什么格式进行打包,需要在assembly.xml文件进行配置;
1)支持打包的格式:支持zip、tar.gz、tar.bz2、jar、war等格式;
2)打包输出:默认输入目录为${project.build.directory},默认输入文件为${project.build.finalName};
3、assembly插件用来打包的目标主要是single,其它的都要淘汰了。
应用案例:把web项目打tar.gz格式
pom.xml配置:
<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4.1</version> <configuration> <!-- 不把assembly.xml文件中id附加到打包的文件名中 --> <appendAssemblyId>false</appendAssemblyId> <!-- 配置文件的位置 --> <descriptors> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-tgz</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
assembly.xml配置:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> <!-- id默认会附加到文件名后面 --> <id>tgz</id> <!-- 压缩格式 --> <formats> <format>tar.gz</format> </formats> <!-- 压缩包解压后的目录名 --> <baseDirectory>${project.artifactId}-${project.version}</baseDirectory> <fileSets> <fileSet> <!-- 需要打包的目录 --> <directory>${project.build.directory}\${project.artifactId}-${project.version}</directory> <!-- 压缩包中的目录,相对baseDirectory --> <outputDirectory></outputDirectory> </fileSet> </fileSets> </assembly>