@xtccc
2016-06-25T15:54:51.000000Z
字数 1639
阅读 3344
Maven
参考链接:
在发布版本时,我们需要对外发布一个zip文件,里面将会包含:
- README.md文件,在zip文件的根目录下
- 我们的应用程序自身的jar包,在zip文件的bin目录下
- 启动应用的脚本文件,在zip文件的bin目录下
- 应用运行时所需要的依赖包,在zip文件的jar目录下
- 应用运行是所需的配置文件,在zip文件的conf目录下
我们可以利用maven-assembly-plugin这个插件来实现这一需求。
假设我们的项目结构如下:

pom.xml文件加入如下的内容:
<project><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><version>2.5.3</version><configuration><descriptors><descriptor>src/main/assembly.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build></project>
src/main/assembly.xml文件内容如下:
<assembly><id>bin</id><formats><!-- 最终生成一个ZIP文件 --><format>zip</format></formats><!-- 把依赖加入到生成的ZIP文件中 --><dependencySets><dependencySet><!-- lib不包含Project artifact,且不包含scope为provided/runtime的依赖 --><useProjectArtifact>false</useProjectArtifact><outputDirectory>lib</outputDirectory><unpack>false</unpack></dependencySet></dependencySets><fileSets><fileSet><directory>distributions</directory><outputDirectory></outputDirectory><includes><include>README.md</include></includes></fileSet><fileSet><directory>distributions</directory><outputDirectory>bin</outputDirectory><includes><include>startup.sh</include></includes></fileSet><fileSet><!-- 把project artifact放入到bin目录下 --><directory>${project.build.directory}</directory><outputDirectory>bin</outputDirectory><includes><include>*.jar</include></includes></fileSet></fileSets></assembly>
运行如下的构建命令:
$ mvn clean package
在target目录下会生成一个文件bigdata-1.0-SNAPSHOT-bin.zip, 解压后的内容如下:

配置的过程非常明了,我就不解释了。
