Java共享(交叉)依赖性管理

时间:2018-12-13 23:28:20

标签: java gradle

让我们说我正在构建一个依赖于两个库的Java应用程序:A和B。A和B都依赖于库C。管理A和B使用相同版本的最佳方法是什么?这样他们就不会冲突?我正在使用Gradle。

1 个答案:

答案 0 :(得分:0)

从Gradle 4.6(5.x)Gradle provides support开始导入bill of materials (BOM) files,这实际上是.pom文件,它们使用<dependencyManagement>控制直接和可传递的依赖版本依赖性。听起来像您所需要的。因此,如果库C具有BOM,则只需导入要执行的版本的BOM即可:

dependencies {
    // import a BOM
    implementation(enforcedPlatform("com.acme:c-bom:1.0.0"))

    implementation("com.acme:a:1.2.3")
    implementation("com.acme:b:4.5.6")
}

如果该库没有BOM,只需明确声明它即可:

dependencies {
    implementation("com.acme:c:1.0.0")

    implementation("com.acme:a:1.2.3")
    implementation("com.acme:b:4.5.6")
}