我在maven有一个包含5个模块的项目 . 现在,当我进行“mvn clean install”时,它会生成一个包含两个 jar 的耳朵,一个战争和一个来自其他模块的sar .
所有文件名都包含版本,例如projectx-ear-2.0.0.ear,projectx-client-2.0.0.jar等 .
我需要重命名其中一个 jar 和最后一个耳朵以省略文件名中的版本 . 它应该如下所示:
projectx-ear.ear
|
+-- projectx-client.jar
|
+-- projectx-misc-2.0.0.jar
|
+-- projectx-sar-2.0.0.sar
|
\-- projectx-web-2.0.0.web
现在我正在使用以下插件来构建:maven-compiler-plugin和maven-release-plugin
实现我期望的结果的最佳方法是什么?
3 回答
在您的ear模块中,您可以使用
project.build.finalName
元素,也可以配置支持finalName可选参数的maven-ear-plugin . 要配置捆绑jar的最终名称,您需要定义jarModule并为其设置bundleFileName
属性 .最终配置可能看起来像这样(我将演示如何在插件配置中设置最终的耳朵名称):
您可以通过在pom中指定
finalName
属性来实现此目的:Point one : single JAR/WAR.
要在名称中创建没有版本号的文件,请在pom.xml中添加以下代码:
因此,如果您编译,例如projectx_misc,则会获得projectx_misc.jar .
我怎么了?当我从POM项目(在Netbeans中)编译相同的包时,所有的jar都有名称中的版本,EAR包含xxx-version.jar存档 .
So, point two: the EAR problem.
在EAR的pom.xml文件中,更改配置此属性的maven-ear-plugin:
这是我的插件设置,例如:
所以,现在当我从项目pom编译所有档案时,所有版本号都从jar中删除 .