【发布时间】:2010-09-03 01:31:55
【问题描述】:
我不知道我是否遗漏了什么,但我对 Maven 的 Codehaus versions plugin 有疑问。这是我的情况的简化:
- 根:
- 模块A
- 模块B
'root' 是一个聚合器 POM,即声明 moduleA 和 moduleB 为子 modules,并且 A 和 B 都有 root 作为 parent。
A 和 B 都依赖于 project-C,但是这个依赖的 version 是在 property 中定义的 - 比如@ 987654322@ - 未硬编码。该属性在 root 中定义,因此 A 和 B 都继承了 project-C 的相同版本值。
在根 POM 中:
<properties>
<project-C.version>1.0</project-C.version>
在模块 A 和 B 中(记住 root 是父级):
<dependency>
<groupId>com.blah</groupId>
<artifactId>project-C</artifactId>
<version>${project-C.version}</version>
</dependency>
现在,假设项目-C 的更新版本 1.1-SNAPSHOT 可用。我想使用 versions 插件向我展示这个,所以我运行:
$ cd /projects/root
$ mvn versions:display-property-updates -DallowSnapshots=true
但我得到的只是这样的:
[INFO] 构建根 [INFO] 此项目没有与版本关联的任何属性 [INFO] 建筑模块A [INFO] 此项目没有与版本关联的任何属性 [INFO] 建筑模块B [INFO] 此项目没有与版本关联的任何属性如果我在 root、moduleA 或 moduleB 上运行它并没有什么不同:它总是这样说。当然,如果我在依赖项中硬编码项目 C 的版本号,它会起作用。
因此,总而言之:我想将依赖版本作为属性集中在根(聚合器/父)POM 中,并且我希望 versions 插件能够为在属性上工作的目标挑选那些,即:
- 显示属性更新
- 更新属性
我该怎么做?我错过了什么吗?这是版本插件中的错误吗?
【问题讨论】:
-
作为提示,认为这个问题同时解决了。至少我不必用
org.codehaus.mojo:versions-maven-plugin:2.8.1跳过那些圈子。 (而且我确实必须在我的旧版本代码中这样做:-)) -
感谢@tobi42。是的,已经 11 年了,很高兴知道他们修好了 :)
标签: maven-2