2015-08-21 96 views
0

我使用的是Maven 3.3.3。我刚刚从3.1.1升级,发现我无法再传入一个版本。Maven 3.3覆盖版本

的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包-DVERSION_NUMBER = 1.2.3

升级到Maven 3.3.3之后,我现在得到的错误消息: [ERROR]版必须是一个常量

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

+0

看到它可能会帮助你http://stackoverflow.com/questions/1981151/warning-on-using-project-parent-version-as-the-version-of-a-module-in-maven-3 –

+0

@SubodhJoshi该链接仍然没有与我的问题相关的答案。我仍然需要弄清楚如何在版本中使用buildnumber-maven-plugin中的$ {buildNumber}? – sworded

+0

我怀疑你已经从Maven版本3.1.3更新了吗?不存在.... – khmarbaise

回答

0

不幸的是,你不可能在最新版本的maven中做你正在尝试的东西 - 这个版本对于构建过程非常重要,你必须在你的POM中明确地指定它。

围绕它的唯一方法(我不建议这是一个好主意)应该是在你的maven命令之前添加一个预处理步骤,例如,使用sed修改POM并设置所需的任何版本号。

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

+0

我希望让我的CI服务器(Jenkins)能够管理所有版本和发布,而不会有任何开发人员担心。 – sworded

0

你必须使用一个或以下性质的组合:

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

这根本不起作用的原因。

+0

你能解释这是如何工作的吗?我用VERSION替换了VERSION_NUMBER,并且得到了相同的错误 - 版本必须是常量。 – sworded