【问题标题】:How to use a maven BOM for Spring in Gradle?如何在 Gradle 中为 Spring 使用 Maven BOM?
【发布时间】:2019-05-06 06:57:27
【问题描述】:

我正在将 POM 转换为 Gradle,而我遇到的一件事是在 Gradle 中进行依赖管理,如下所示:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Edgware.SR4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

有没有办法在 Gradle 中也有 Edgware.SR4

我检查了https://docs.gradle.org/4.6/release-notes.html#bom-import,但这并没有真正告诉我如何使用Edgware.SR4 BOM。


更新

我终于有了我的 build.gradle 如下似乎可以工作:

plugins{
   id 'org.springframework.boot' version '1.5.8.RELEASE'
}

apply plugin: 'io.spring.dependency-management'
dependencyManagement {
    imports {
       mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Edgware.SR4'
    }
}

这似乎工作正常,但想知道这种方法是否存在任何缺陷。 https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/ 提供的文档建议使用 apply false 开头

id 'org.springframework.boot' version '1.5.8.RELEASE'

我没有这样做,但效果很好。想知道为什么会这样建议。

【问题讨论】:

  • 您链接到的文档不适用于 Spring Boot 1.5(现在,它适用于 2.1,但由于 URL 中的 current 而会发生变化)。使用 1.5,无需应用依赖管理插件(它始终为您应用),也不需要 apply false

标签: maven spring-boot gradle


【解决方案1】:

假设您使用的是 Spring Boot,因此已经应用了依赖管理插件,您可以通过将以下内容添加到您的 build.gradle 文件来导入 Spring Cloud 的 bom:

dependencyManagement {
    imports {
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Edgware.SR4'
    }
}

【讨论】:

  • docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/… 这表示如果基于 spring boot starter 父版本包含依赖管理插件,则 gradle 包含一个 bom。依赖项的版本号会以不同的方式解决,然后在 maven 项目中解决什么,其中一个指定 spring boot starter parent 和 BOM(如 Edgeware 等)的版本?我相信不是,只是想弄清楚它。
  • 没有。如果你在这两种情况下使用相同版本的 Spring Boot 和 Spring Cloud,你应该得到与 Maven 和 Gradle 相同的依赖版本。
  • 你能检查我的更新,看看我是否做了对我有用的正确事情吗?
  • 另外,我真的需要参考 gradle 中的 Edgeware BOM 来实现依赖项的类似 maven 的版本吗?
  • 是的。 Gradle 还能如何了解这些版本?
猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 2015-12-20
  • 2014-06-27
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 2014-09-30
  • 2015-11-13
相关资源
最近更新 更多