[关闭]
@xtccc 2016-06-25T23:54:51.000000Z 字数 1639 阅读 2959

用Assembly构建发布包

给我写信
GitHub

此处输入图片的描述

Maven


参考链接:



在发布版本时,我们需要对外发布一个zip文件,里面将会包含:

  • README.md文件,在zip文件的根目录下
  • 我们的应用程序自身的jar包,在zip文件的bin目录下
  • 启动应用的脚本文件,在zip文件的bin目录下
  • 应用运行时所需要的依赖包,在zip文件的jar目录下
  • 应用运行是所需的配置文件,在zip文件的conf目录下


我们可以利用maven-assembly-plugin这个插件来实现这一需求。

假设我们的项目结构如下:
image_1am40qvfrdhl1tl49uf1u6c899.png-39.1kB


pom.xml文件加入如下的内容:

  1. <project>
  2. <build>
  3. <plugins>
  4. <plugin>
  5. <artifactId>maven-assembly-plugin</artifactId>
  6. <version>2.5.3</version>
  7. <configuration>
  8. <descriptors>
  9. <descriptor>src/main/assembly.xml</descriptor>
  10. </descriptors>
  11. </configuration>
  12. <executions>
  13. <execution>
  14. <id>make-assembly</id>
  15. <phase>package</phase>
  16. <goals>
  17. <goal>single</goal>
  18. </goals>
  19. </execution>
  20. </executions>
  21. </plugin>
  22. </plugins>
  23. </build>
  24. </project>



src/main/assembly.xml文件内容如下:

  1. <assembly>
  2. <id>bin</id>
  3. <formats>
  4. <!-- 最终生成一个ZIP文件 -->
  5. <format>zip</format>
  6. </formats>
  7. <!-- 把依赖加入到生成的ZIP文件中 -->
  8. <dependencySets>
  9. <dependencySet>
  10. <!-- lib不包含Project artifact,
  11. 且不包含scope为provided/runtime的依赖 -->
  12. <useProjectArtifact>false</useProjectArtifact>
  13. <outputDirectory>lib</outputDirectory>
  14. <unpack>false</unpack>
  15. </dependencySet>
  16. </dependencySets>
  17. <fileSets>
  18. <fileSet>
  19. <directory>distributions</directory>
  20. <outputDirectory></outputDirectory>
  21. <includes>
  22. <include>README.md</include>
  23. </includes>
  24. </fileSet>
  25. <fileSet>
  26. <directory>distributions</directory>
  27. <outputDirectory>bin</outputDirectory>
  28. <includes>
  29. <include>startup.sh</include>
  30. </includes>
  31. </fileSet>
  32. <fileSet>
  33. <!-- 把project artifact放入到bin目录下 -->
  34. <directory>${project.build.directory}</directory>
  35. <outputDirectory>bin</outputDirectory>
  36. <includes>
  37. <include>*.jar</include>
  38. </includes>
  39. </fileSet>
  40. </fileSets>
  41. </assembly>



运行如下的构建命令:

  1. $ mvn clean package



在target目录下会生成一个文件bigdata-1.0-SNAPSHOT-bin.zip, 解压后的内容如下:

image_1am416nqpkdv18ktaj11q3aat2m.png-67.4kB



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




添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注