maven父母pom依赖管理in gradle

时间:2013-01-13 23:06:16

标签: maven gradle dependency-management

在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的依赖管理部分中定义了hibernate依赖,但是没有在那里定义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的依赖管理部分中。

1 个答案:

答案 0 :(得分:2)

io.spring.dependency-management插件允许您使用Maven bom来控制构建的依赖项:

TableView

接下来,您可以使用它来导入Maven bom:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:0.5.3.RELEASE"
  }
}

apply plugin: "io.spring.dependency-management"

现在,您可以在不指定版本号的情况下导入依赖项:

dependencyManagement {
  imports {
    mavenBom 'io.spring.platform:platform-bom:1.1.4.RELEASE'
  }
}