我们希望集中管理依赖版本,因此我们提出了一个名为commons的中央maven项目来管理项目m1和m2的版本:
commons
|___pom.xml:
<groupId>commons</groupId>
<artifactId> commons </artifactId>
<version>1.0.1-SNAPSHOT</version>
<properties>
<m1.version>1.0.0</m1.version>
<m2.version>1.0.0</m2.version>
</properties>
<dependencyManagement>
<depencencies>
<dependency>
<groupId>g1</groupId>
<artifactId>m1</artifactId>
<version>${m1.version}</version>
</dependency>
<dependency>
<groupId>g2</groupId>
<artifactId>m2</artifactId>
<version>${m2.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
m1和m2的父级是公共的,m1依赖于m2:
m1
|___pom.xml:
<groupId>g1</groupId>
<artifactId>m1</artifactId>
<version>1.0.1-SNAPSHOT</version>
<parent>
<groupId>commons</groupId>
<artifactId>commons</artifactId>
<version>1.0.0</version>
</parent>
<depencencies>
<dependency>
<groupId>g2</groupId>
<artifactId>m2</artifactId>
</dependency>
</dependencies>
通过这样做,我不必指定m2的版本。 问题是,如果我现在想要更改m2,m1将通过执行以下操作来获取m1的更改:
在m1中更新父引用:
<parent>
<groupId>commons</groupId>
<artifactId>commons</artifactId>
<version>1.0.1</version>
</parent>
我们关注的是公共版本1.0.1不是一个一致版本,因为m2和m1所依赖的m2不一样。
我是否清楚地解释了我的问题?你能提一些建议吗?
谢谢你, 衙署