【发布时间】:2012-12-27 20:56:27
【问题描述】:
在 maven 中,您可以在依赖管理部分声明依赖版本。 假设我有这样的 pom 来管理我所有项目的某些库的默认版本(所以我不必一遍又一遍地重复它们,这样我就可以确保我所有项目的一致性)。
然后我有多个项目(项目 A 和项目 B)将这个 pom 设置为父 pom。如果在项目A中我想使用spring.jar,并且我在A的父pom的依赖管理中定义了spring.jar,我不必再次在A的pom中定义spring版本,我只需定义它依赖于spring。到目前为止还可以,如何在 gradle 中也很简单(http://stackoverflow.com/questions/9547170)
我想知道的是这种情况:
想象一下spring 3.0依赖于hibernate 3.0。在 A 的父 pom 中,我在 3.1 版本的依赖管理部分中定义了休眠依赖,但没有在那里定义 spring。 Spring在A的pom中定义(3.0版本)。项目 A 的 maven 中的依赖解析将导致获取 spring 3.0 和 hibernate 3.1 - 因为尽管 spring 3.0 依赖于 hibernate 3.0,但 A 的父 pom 的依赖管理覆盖了 hibernate 版本,因此将使用 3.1。
有没有办法在 gradle 中定义类似的东西?请注意,我不必在 A 的 pom 中专门指定 hibernate,而且它也没有在 A 的父 pom 中指定为依赖项 - 它仅在 A 的父 pom 的依赖管理部分中。
【问题讨论】:
-
不确定它是否会起作用,但您是否已经看过 resolutionStrategy 类?
-
也许这个其他 SO 答案会有所帮助? stackoverflow.com/questions/9547170/…
标签: maven gradle dependency-management