使用 Maven 从文件名中删除版本号
我在 Maven 中有一个包含 5 个模块的项目。现在,当我执行“mvn clean install”时,它会生成一个包含两个 jar 的耳朵,一个是来自其他模块的 war 和一个 sar。
所有文件名都包含版本,例如projectx-ear-2.0.0.ear、projectx-client-2.0.0.jar等。
我需要重命名其中一个jar和最后一个ear以省略版本中的版本文件名。它应该看起来像这样:
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
实现我期望的结果的最佳方法是什么?
I have a project with 5 modules in maven. Right now, when I do a "mvn clean install", it generates an ear containing the two jars, one war and one sar from the other modules.
All the file names contain the version, e.g., projectx-ear-2.0.0.ear, projectx-client-2.0.0.jar, etc.
I need to rename one of the jars and the final ear to omit the version in the file name. It should look like this:
projectx-ear.ear
|
+-- projectx-client.jar
|
+-- projectx-misc-2.0.0.jar
|
+-- projectx-sar-2.0.0.sar
|
\-- projectx-web-2.0.0.web
Right now I'm using the following plugins to build:
maven-compiler-plugin and maven-release-plugin
What would be the best way to achieve the results I expect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以通过在 pom 中指定
finalName
属性来实现此目的,如下所示:You can achieve this by specifying the
finalName
property in your pom like this:在您的ear模块中,您可以使用
project.build.finalName
元素,也可以配置 maven-ear-plugin 支持finalName
可选参数。要配置捆绑 jar 的最终名称,您需要定义jarModule
并为其设置bundleFileName
属性。最终的配置可能看起来像这样(我将演示如何在此处的插件配置中设置最终的耳朵名称):
In your ear module, you can either use the
project.build.finalName
element or you can configure the maven-ear-plugin which supports afinalName
optional parameter. And to configure the final name of a bundled jar, you'll need to define ajarModule
and to set thebundleFileName
property for it.The final configuration might looks something like that (I'll demonstrate how to set the the final ear name in the plugin configuration here):
第一点:单个 JAR/WAR。
要创建名称中没有版本号的项目,只需在 pom.xml 中添加以下代码:
因此,如果您编译,例如 projectx_misc,您将获得 projectx_misc。罐子。
我怎么了?当我从 POM 项目(在 Netbeans 中)编译相同的包时,所有 jar 的名称中都包含版本,并且 EAR 包含 xxx-version.jar 档案。
所以,第二点:EAR 问题。
在 EAR 的 pom.xml 文件中,更改 maven-ear-plugin 在配置中添加此属性:
这是我的插件设置例如:
所以,现在当我编译项目 pom 中的所有档案时,所有版本号都会从 jar 中删除。
Point one : single JAR/WAR.
To create it without version number in name, in pom.xml simply add the code:
So, if you compile, for example projectx_misc, you get projectx_misc.jar .
What happens to me? When I compile the same package from a POM project (in Netbeans), all the jars have the version in the name and the EAR include the xxx-version.jar archives.
So, point two: the EAR problem.
In the EAR's pom.xml file, change the maven-ear-plugin adding in the configuration this property:
This is my plugin setting for example:
So, now when i compile all the archives from a project pom, all the version numbers are removed from the jars.