10

正如您从标题中看到的那样,我想问一下,在Maven 3 中,pom.xml 中不再支持 $version 了。难道我们真的要在每个项目的每个pom.xml和相关的配置文件中,每次都写一个常量吗?我们怎样才能避免这样做呢?我们如何使用像 $version 这样的版本控制方法?

4

3 回答 3

18

该表达式${version}已弃用,您应该改用该表达式${project.version},但仍支持这两种表达式,您当然不需要自定义属性。

以下对我来说适用于 Maven 3:

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>services</artifactId>
  <version>${project.version}</version>
  <type>ejb</type>
</dependency>

还请查看我之前对使用 project.parent.version 作为 Maven 3 中模块版本的警告的回答,您使用的方式version(基于我在另一个答案的评论中看到的)没有恕我直言,Maven 3 实际上很友好地建议遵循最佳实践。只继承版本。

于 2010-05-13T14:05:07.203 回答
1

在顶部元素中使用宏<version/>和元素中的版本在<parent/>maven 2 中从未工作过。它似乎工作,但除了下游的混乱之外什么也没有。如果这不是您所说的,请澄清您的问题。

于 2010-05-13T12:56:16.547 回答
0

下面的错误显示了$(artifactId}和的弃用${version}

[警告] 表达式 ${artifactId} 已弃用。请改用 ${project.artifactId}。[警告] 表达式 ${version} 已弃用。请改用 ${project.version}。[警告] [警告] 强烈建议修复这些问题,因为它们威胁到您构建的稳定性。[警告] [警告] 出于这个原因,未来的 Maven 版本可能不再支持构建此类格式错误的项目。

警告信息说明了这一点。替换${artifactId}${project.artifactId},${version}${project.version}

于 2016-02-17T04:14:42.000 回答