java将一个jar打包成一个dist dir,其中包含独立的外部资源和依赖项
以下是我试图实现的目标-一个dist
目录(或zip文件),看起来像这样:
dist/
|-- application-1.0.jar
|-- conf/
|-- application.properties
|-- log4j.properties
|-- lib/
|-- *.jar
基本上:
- 生成一个可执行jar(清单中有适当的类路径)
- 我想将
src/main/resources
从jar的自动打包中排除,以便可以修改application.properties
- 我希望在
lib/
目录中有外部依赖项
我提出了一个解决方案,使用一个配置文件,在包阶段附加插件,但是使用汇编插件会是一个更好的解决方案吗
# 1 楼答案
您需要使用两个插件来完成此任务:maven-jar-plugin和maven-assembly-plugin
有用的
pom.xml
示例:(我建议您将用户可编辑属性文件分离到单独的目录中,但这是一个品味问题。)
示例程序集配置,要开始,请执行以下操作:
# 2 楼答案
使用assembly插件的解决方案有几个部分:
maven-jar-plugin
)和配置汇编插件(maven-assembly-plugin
)李>distribution-zip.xml
)定义的zip文件中李>在pom中,配置插件:
程序集文件
distribution-zip.xml
的内容(感谢Neeme Praks)结合了创建的jar、资源和依赖项:生成的可分发zip文件被创建为
target/killer-app-1.0-dist.zip