【问题标题】:Gradle: Spring 4 BOM dependenciesGradle:Spring 4 BOM 依赖项
【发布时间】:2020-06-18 02:31:10
【问题描述】:

如何在 Gradle 配置文件中添加 Spring 4 BOM 依赖?

在 Maven 中,可以按照 here 中提到的那样完成。

Maven 等价物:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>${spring.framework.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<repositories>
    <repository>
        <id>spring-milestones</id>
        <url>http://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

【问题讨论】:

    标签: gradle spring-4


    【解决方案1】:

    来自https://github.com/spring-gradle-plugins/dependency-management-plugin

    plugins {
       id "io.spring.dependency-management" version "0.4.1.RELEASE"
    }
    
    dependencyManagement {
        imports {
            mavenBom 'org.springframework:spring-framework-bom:4.1.6.RELEASE'
        }
    }
    

    【讨论】:

      【解决方案2】:

      据我所知,Gradle 没有类似 Maven 的依赖管理。您必须手动声明合适的依赖版本。

      【讨论】:

      • 实现类似于依赖管理的东西很容易。但是上次查了一下,Gradle 不支持 BOM,需要内联 BOM 依赖。
      【解决方案3】:

      查看这个 spring gradle 插件

      一个 Gradle 插件,提供类似 Maven 的依赖管理和 排除

      https://github.com/spring-gradle-plugins/dependency-management-plugin

      【讨论】:

        【解决方案4】:

        这里基本上有2.5个选择。

        使用 Gradle 的原生 BOM 支持

        As of Gradle 4.6supports 本机 BOM。在构建文件中添加这些行:

        settings.gradle

        enableFeaturePreview('IMPROVED_POM_SUPPORT')
        

        从 Gradle 5.0 开始不需要它。

        build.gradle

        dependencies {
            implementation("org.springframework.boot:spring-boot-dependencies:2.0.3.RELEASE")
        
            // Now you can import Spring dependencies without particular version:
            implementation("org.springframework.boot:spring-boot-starter")
        }
        

        使用 Spring Boot Gradle 插件

        当您应用io.spring.dependency-management 插件时,Spring Boot 的插件会自动从您正在使用的 Spring Boot 版本中import the spring-boot-dependencies bom。这提供了与 Maven 用户所享受的类似的依赖管理体验。例如,它允许您在声明在 bom 中管理的依赖项时省略版本号。要使用此功能,只需以通常的方式声明依赖项,但省略版本号。

        build.gradle

        plugins {
            id "org.springframework.boot" version "2.0.3.RELEASE"
        }
        
        dependencies {
            // Now just import what you need:
            implementation "org.springframework.boot:spring-boot-starter"
        }
        

        使用io.spring.dependency-management

        不错的功能是you can use Spring's dependency plugin,即使您对 Spring Boot 不感兴趣。

        build.gradle

        plugins {
            id("io.spring.dependency-management") version "1.0.6.RELEASE"
        }
        
        dependencyManagement {
            imports {
                mavenBom("org.springframework.boot:spring-boot-dependencies:2.0.6.RELEASE")
                mavenBom("com.amazonaws:aws-java-sdk-bom:1.11.409") // Import any bom!
            }
        }
        
        dependencies {
            implementation("org.springframework.boot:spring-boot-starter")
            implementation("com.amazonaws:aws-java-sdk-dynamodb")
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-24
          • 2020-08-31
          • 2018-04-01
          • 1970-01-01
          • 2021-02-21
          • 1970-01-01
          • 1970-01-01
          • 2019-10-16
          相关资源
          最近更新 更多