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