1

我正在尝试使用 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 的原生支持?它包括什么?

4

0 回答 0