代码之家  ›  专栏  ›  技术社区  ›  sworded

Maven 3.3覆盖版本

  •  0
  • sworded  · 技术社区  · 10 年前

    我使用的是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包-DVERSION_NUMBER=1.2.3

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

    我的目标是能够传递版本号,而不会在pom.xml中有实际的数字。我不想使用版本插件,因为这实际上改变了pom。xml以使用特定的版本号。源代码管理中没有版本号。

    2 回复  |  直到 10 年前
        1
  •  0
  •   olambert    10 年前

    不幸的是,在maven的最新版本中无法完成您正在尝试的操作——该版本是构建过程中不可或缺的一部分,因此您必须在POM中明确指定它。

    唯一的解决方法(我并不是说这是个好主意)是在maven命令之前添加一个预处理步骤,例如使用 sed 修改POM并设置所需的版本号。

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

        2
  •  0
  •   khmarbaise    10 年前

    您必须使用以下属性之一或其组合:

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

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