制作软件发行包只是Maven能够轻松完成的众多任务之一,下面通过一个简单的实例进行说明。
按照Maven的标准做法,该功能以插件的方式提供,这个插件就是Maven Assembly Plugin,它的网址是:
http://maven.apache.org/plugins/maven-assembly-plugin/
执行下面的命令创建一个供测试用的待发布web项目:
这会产生下面的目录结构:
如果一切顺利,应该能在output目录下找到 myweb-1.0-SNAPSHOT.zip文件,我们的发行包已经整装待发了。
按照Maven的标准做法,该功能以插件的方式提供,这个插件就是Maven Assembly Plugin,它的网址是:
http://maven.apache.org/plugins/maven-assembly-plugin/
1.准备工作
下载最新Maven 2的软件包,安装后将其bin路径注册到系统的查找路径中。执行下面的命令创建一个供测试用的待发布web项目:
命令行
- mvn archetype:create \
- -DgroupId=de.focusdv.bcs -DartifactId=myweb \
- -DarchetypeArtifactId=maven-archetype-webapp
这会产生下面的目录结构:
java 代码
- myweb\
- deploy\ <-- 存放用于制作发行包的Maven配置文件。
- output\ <-- 预期存放我们即将创建的发行包,假设是myweb-1.0-SNAPSHOT.zip。在真实的项目
- 中,将这个目录单独放置到其他地方也许会更好。
- dist\ <-- 存放打包文件,假设这里是myweb-1.0-SNAPSHOT.war
- src\
- main\
- \java
- \resources
- \webapp
- test\
- target\
- pom.xml
除了deploy和dist目录由我们自己手动创建外,其余部分为Maven按照标准的目录布局自动产生。
接下来我们的任务就是将myweb下面的src目录、dist目录,以及pom.xml文件打包到myweb-1.0-SNAPSHOT.zip中,供我们的客户使用。
2.编写配置文件
首先在deploy目录中编写Maven项目的配置文件pom.xml:
xml 代码
- <project>
- <modelVersion>4.0.0modelVersion>
- <groupId>com.mycompanygroupId>
- <artifactId>mywebartifactId>
- <name>mywebname>
- <version>1.0-SNAPSHOTversion>
- <url>com.mycompanyurl>
- <build>
- <directory>outputdirectory>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-pluginartifactId>
- <configuration>
- <appendAssemblyId>falseappendAssemblyId>
- <descriptors>
- <descriptor>distribution.xmldescriptor>
- descriptors>
- configuration>
- plugin>
- plugins>
- build>
- project>
xml 代码<o:p> </o:p>主要信息已经注释到代码中了。
然后在相同目录下编写在pom.xml中指定的名为distribution.xml的文件:
xml 代码
- <assembly>
- <id>distributionid>
- <formats>
- <format>zipformat>
- formats>
- <includeBaseDirectory>trueincludeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>distdirectory>
- <directory>srcdirectory>
- <includes>
- <include>*.xmlinclude>
- includes>
- <outputDirectory>/outputDirectory>
- fileSet>
- fileSets>
- assembly>
重要信息同样已经包含到注释中了。
3.制作发行包
编写好这两个文件之后,在命令行中切换到deploy目录下,执行下面的命令:- mvn assembly:assembly
如果一切顺利,应该能在output目录下找到 myweb-1.0-SNAPSHOT.zip文件,我们的发行包已经整装待发了。