我正在尝试使用 BOM 来使用 Gradle 5 构建项目 A。创建的 pom 文件未正确包含 BOM 或来自它的依赖项(见下文)。此外,尝试构建依赖于 A 的项目 B 在项目 A 的 pom 上失败。
使用 DependencyManagementPlugin(即不使用 Gradle 5 原生支持)时,一切正常:
apply plugin:
io.spring.gradle.dependencymanagement.DependencyManagementPlugin
dependencyManagement {
imports {
mavenBom 'myGroup:infra-bom:1.0.+'
}
}
在项目 A 的 pom 中的 dependencyManagement 块中创建它:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>myGroup</groupId>
<artifactId>infra-bom</artifactId>
<version>1.0.25</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
试图让它与 Gradle 5 一起工作并不是那么幸运:
依赖{
compile platform ('myGroup:infra-bom:1.0.+')
...
...
}
gradle dependencies 显示 BOM 中的正确版本,但它会在项目 A 的 pom 中现有依赖项块中创建此版本:
<dependency>
<groupId>myGroup</groupId>
<artifactId>infra-bom</artifactId>
<version>null</version> // note the null here
<scope>compile</scope>
</dependency>
尝试使用它的构建失败。
我是否正确使用 Gradle 5 对 BOM 的原生支持?它包括什么?