Maven 3.3覆盖版本

时间:2015-08-21 13:42:11

标签: java maven versioning pom.xml

我正在使用Maven 3.3.3。我刚从3.1.1升级,发现我再也无法传入版本了。

的pom.xml

<modelVersion>4.0.0</modelVersion>
<groupId>com.hello.world</groupId>
<artifactId>helloworld</artifactId>
<version>${VERSION_NUMBER}</version>
<packaging>pom</packaging>
<properties>
    <VERSION_NUMBER>LOCAL-ONLY-SNAPSHOT</VERSION_NUMBER>
</properties>

mvn package -DVERSION_NUMBER = 1.2.3

升级到Maven 3.3.3后,我现在收到错误消息: [错误]版本必须是常量

我的目标是能够传递版本号,并且永远不会在pom.xml中包含实际数字。我不想使用versions-plugin,因为它实际上更改了pom.xml以使用特定的版本号。源代码管理中没有版本号。

2 个答案:

答案 0 :(得分:0)

您必须使用以下属性中的一个或组合:

${revision}, ${changelist}, and ${sha1}. 

这就是它不起作用的原因。

答案 1 :(得分:0)

不幸的是,不可能在最新版本的maven中执行您正在尝试的内容 - 版本对于构建过程是如此不可或缺,您必须在POM中明确指定它。

围绕它的唯一方法(我并不是说这是一个好主意)是在你的maven命令之前添加一个预处理步骤,例如:使用match_personnes.take(10) 修改POM并设置您想要的任何版本号。

出于好奇,你为什么要这样做?