假设有一个带有子项目B的根项目A.项目A和B具有相同的版本,假设1.并且有一个单独的根项目X与子项目Y.项目X和Y也有相同的版本,让我们说2。
我想:
我就是这样做的:
pom.xml,项目X:
<groupId>projectX</groupId>
<artifactId>X</artifactId>
<version>2</version>
<parent> <!-- Project A defines a lot of dependencies that I don't want to redefine in project B -->
<groupId>projectA</groupId>
<artifactId>A</artifactId>
<version>1</version>
</parent>
...
<properties>
<!-- I'm duplicating version 1 here -
I have to define it above, in project's
version and define it again in all the places
where I refer to children projects of the
root project A -->
<projectA.version>1</projectA.version>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>projectA</groupId>
<artifactId>B</artifactId>
<version>${projectA.version}</version>
</dependency>
...
和pom.xml,项目Y:
<parent>
<groupId>projectX</groupId>
<artifactId>X</artifactId>
<version>2</version>
</parent>
<dependencies>
<dependency>
<groupId>projectA</groupId>
<artifactId>B</artifactId>
</dependency>
...
我觉得版本条目的重复(在上面给出的例子中是1)看起来不是很优雅,我试图使用像parent.version和project.parent.version这样的属性占位符但是没有一个对我有效 - 显然是父在.x的子项目中重写.version和project.parent.version,因此maven认为它们是2而不是1。
问题是,如果当前根项目使用的是另一个版本而不是父项目,是否有可能以某种方式引用父项目的版本。
我希望这个问题有道理,因为它看起来有点令人困惑,我不知道如何让它变得更简单。
我怀疑不可能通过设计做我想做的事,但我希望有重要经验的人可以证实这一点。