假设我有以下工件。为简单起见,我将省略组。
A:1.0 A:2.0 A:3.0 B:1.0 depends on A:1.0 C:1.0 depends on A:2.0 D:1.0 depends on B:1.0, C:1.0
我希望D使用从它的依赖项继承的最新版本的A(不是来自存储库)。在这种情况下,它是2.0。
如何使用Maven 2或Maven 3进行此操作?
答案 0 :(得分:2)
通常maven采用最接近root的版本,在你的情况下,maven(2/3)应该自动获取A:2.0(因为它们同样很远)
另一种选择是使用版本范围,例如A:[2.0,]但这将从存储库中获取最新版本。 (它将包括SNAPSHOT版本,这使得当前的maven3对版本范围来说非常不可用)
(IMHO)正确的方法是使用带有依赖管理标记的master-pom,并声明A:2.0应该用于所有子项目。