在 Maven 中,您可以在依赖管理部分声明依赖版本。假设我有这样的 pom 来管理我所有项目的某些库的默认版本(所以我不必一遍又一遍地重复它们,这样我就可以确保我所有项目的一致性)。
然后我有多个项目(项目 A 和项目 B)将这个 pom 设置为父 pom。如果在项目AI中要使用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 的依赖管理部分中。