【发布时间】:2014-06-23 10:41:55
【问题描述】:
我有一个带有以下 GAV 的 pom
<groupId>com.company.services</groupId>
<artifactId>test-branch-2</artifactId>
<version>1.0.21-SNAPSHOT</version>
我想在批处理模式下使用 maven 从中删除 -SNAPSHOT,所以我可以使用 Jenkins 来完成,而不必手动指定任何内容。
我查看了 version:set 的文档,但所有选项都为我提供了交互式提示,并要求我输入版本名称。
我更喜欢版本插件,而不是发布插件。
【问题讨论】:
-
mvn versions:set -DnewVersion=1.0.21应该可以解决问题,不是吗? -
是的,但不是。你是如何得到字符串“1.0.21”的,而没有对 pom 进行less'ed 或 cat'ed 或 grep'ed?
-
啊,我明白了。看看page 123 f. of DevOps for Developers,Michael Hüttermann 描述了一个 Maven 插件,它删除了 -SNAPSHOT 并相应地设置了版本插件的 newVersion 属性。
-
我放弃了。我现在正在使用发布插件。
-
而且必须全是 Maven?您可以通过帮助插件获取版本 - mvn help:evaluate -Dexpression=project.version,但是您需要一些 sed 的帮助或其他东西来删除“SNAPSHOT”后缀。当然你也可以直接grep版本。
标签: maven maven-3 pom.xml maven-release-plugin versions-maven-plugin