关于临时排除的Maven依赖策略是什么

时间:2019-03-25 23:07:32

标签: maven dependency-management

我正在使用Maven 3,并且我有一个小项目,其模块依赖于该项目的另一个模块。较低的一个基本上是JPA实体模型,另一个是使用它的REST服务。它们都具有spring-boot依赖项

我想使用较新的Hibernate和EhCache依赖项,并在JPA模块中对它们进行排序(不包括它们),而maven依赖项:tree显示了我想要的一切。

但是,当我将该模块添加到其他模块作为依赖项时,所有那些排除的依赖项版本又重新回到我的依赖项树中。

为什么在我在模块的第一层定义的版本之前,Maven会在分支(和排除的)中更深入地选择依赖项?

1 个答案:

答案 0 :(得分:1)

我想您已经在第一个模块的POM的<dependencyManagement>部分中定义了排除项。当另一个模块引用第一个模块时,这些排除项消失了,对吧?

我的建议:

如果需要给定依赖项的较新版本,请不要使用排除项,而应使用<dependencyManagement>来定义新版本。这将覆盖所有传递版本定义。