关键字: maven assembly 发行包
制作软件发行包只是maven能够轻松完成的众多任务之一,下面通过一个简单的实例进行说明。
按照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.0<!--</span-->modelversion>
<groupid>com.mycompany<!--</span-->groupid>
<artifactid>myweb<!--</span-->artifactid>
<name>myweb<!--</span-->name>
<version>1.0-snapshot<!--</span-->version>
<url>com.mycompany<!--</span-->url>
<build>
<!-- 发行包的输出路径 -->
<directory>output<!--</span-->directory>
<plugins>
<!-- 对maven assembly插件进行配置 -->
<plugin>
<artifactid>maven-assembly-plugin<!--</span-->artifactid>
<configuration>
<!-- 在生成的发行包名称中不包含assemblyid(这里是“distribution”) -->
<appendassemblyid>false<!--</span-->appendassemblyid>
<!-- 指定唯一的描述文件 -->
<descriptors>
<descriptor>distribution.xml<!--</span-->descriptor>
<!--</span-->descriptors>
<!--</span-->configuration>
<!--</span-->plugin>
<!--</span-->plugins>
<!--</span-->build>
<!--</span-->project>
xml 代码 主要信息已经注释到代码中了。
然后在相同目录下编写在pom.xml中指定的名为distribution.xml的文件:
xml 代码
<assembly>
<id>distribution<!--</span-->id>
<formats>
<!-- 指定发行包使用zip格式 -->
<format>zip<!--</span-->format>
<!--</span-->formats>
<!-- 在发行包中使用根目录,按照惯例,这里是 myweb-1.0-snapshot-->
<includebasedirectory>true<!--</span-->includebasedirectory>
<!-- 将要打包到发行包中的内容 -->
<filesets>
<fileset>
<directory>dist<!--</span-->directory>
<directory>src<!--</span-->directory>
<includes>
<include>*.xml<!--</span-->include>
<!--</span-->includes>
<outputdirectory>/<!--</span-->outputdirectory>
<!--</span-->fileset>
<!--</span-->filesets>
<!--</span-->assembly>
重要信息同样已经包含到注释中了。
3.制作发行包
编写好这两个文件之后,在命令行中切换到deploy目录下,执行下面的命令:
mvn assembly:assembly
如果一切顺利,应该能在output目录下找到myweb-1.0-snapshot.zip文件,我们的发行包已经整装待发了。
制作软件发行包只是maven能够轻松完成的众多任务之一,下面通过一个简单的实例进行说明。
按照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.0<!--</span-->modelversion>
<groupid>com.mycompany<!--</span-->groupid>
<artifactid>myweb<!--</span-->artifactid>
<name>myweb<!--</span-->name>
<version>1.0-snapshot<!--</span-->version>
<url>com.mycompany<!--</span-->url>
<build>
<!-- 发行包的输出路径 -->
<directory>output<!--</span-->directory>
<plugins>
<!-- 对maven assembly插件进行配置 -->
<plugin>
<artifactid>maven-assembly-plugin<!--</span-->artifactid>
<configuration>
<!-- 在生成的发行包名称中不包含assemblyid(这里是“distribution”) -->
<appendassemblyid>false<!--</span-->appendassemblyid>
<!-- 指定唯一的描述文件 -->
<descriptors>
<descriptor>distribution.xml<!--</span-->descriptor>
<!--</span-->descriptors>
<!--</span-->configuration>
<!--</span-->plugin>
<!--</span-->plugins>
<!--</span-->build>
<!--</span-->project>
xml 代码 主要信息已经注释到代码中了。
然后在相同目录下编写在pom.xml中指定的名为distribution.xml的文件:
xml 代码
<assembly>
<id>distribution<!--</span-->id>
<formats>
<!-- 指定发行包使用zip格式 -->
<format>zip<!--</span-->format>
<!--</span-->formats>
<!-- 在发行包中使用根目录,按照惯例,这里是 myweb-1.0-snapshot-->
<includebasedirectory>true<!--</span-->includebasedirectory>
<!-- 将要打包到发行包中的内容 -->
<filesets>
<fileset>
<directory>dist<!--</span-->directory>
<directory>src<!--</span-->directory>
<includes>
<include>*.xml<!--</span-->include>
<!--</span-->includes>
<outputdirectory>/<!--</span-->outputdirectory>
<!--</span-->fileset>
<!--</span-->filesets>
<!--</span-->assembly>
重要信息同样已经包含到注释中了。
3.制作发行包
编写好这两个文件之后,在命令行中切换到deploy目录下,执行下面的命令:
mvn assembly:assembly
如果一切顺利,应该能在output目录下找到myweb-1.0-snapshot.zip文件,我们的发行包已经整装待发了。