当前位置: 首页 > 知识库问答 >
问题:

在Gradle中管理Spring依赖关系

郑茂材
2023-03-14

我正在使用Gradle的Spring Boot框架。我知道,为了包含一些Spring依赖项,我可以引用“starters”而不显式定义版本;该版本将由我选择的Spring Boot版本控制,它是Spring Boot Gradle插件的版本。示例(省略非相关的分级代码):

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: BOOT_VERSION
        classpath group: 'io.spring.gradle', name: 'dependency-management-plugin', version: DEP_MGMT_VERSION
    }
}

...

dependencies {
    compile 'org.springframework.boot:spring-boot'
    testCompile 'org.springframework.boot:spring-boot-starter-test'
}

请注意,没有为我的应用程序依赖项定义显式版本。

compile 'org.springframework.integration:spring-integration-mqtt:some-version'
compile 'org.springframework.cloud:spring-cloud-netflix-eureka-server:some-other-version'

我如何确保我为那些依赖项使用的版本与我的其他Spring Boot依赖项兼容?我不能忽略版本,所以Gradle插件似乎没有处理这些依赖关系(也许它只处理组org.springframework.boot的依赖关系?)。

换句话说,是否有一个干净、安全的方法来确保我的所有Spring依赖项能够协同工作,从Spring Boot、Spring Cloud等?

共有1个答案

漆雕彦
2023-03-14

在你的分级脚本中使用起始部分。

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:2.0.0.RELEASE")
    compile ':spring-cloud-starter-config'
    compile ':spring-cloud-starter-netflix-eureka-client'
    compile ':spring-boot-starter-integration'
}

https://github.com/spring-gradle-plugins/dependency-management-plugin/blob/master/readme.md

对于Spring Cloud,添加一个具有兼容的云到启动版本的dependencyManagement部分。文档说明了哪些项目版本与相应的引导序列(1.4.x、1.5.x、2.x)兼容:

dependencyManagement {
  imports {
    mavenBom ':spring-cloud-dependencies:Finchley.M8'
  }
}

Finchley使用Spring Boot 2.0.x构建和工作,预计不会使用Spring Boot 1.5.x。

Dalston和Edgware发行版系列基于Spring Boot 1.5.x构建,预计不会与Spring Boot 2.0.x一起工作。

Camden发布系列建立在Spring Boot 1.4.x的基础上,但也使用1.5.x进行了测试

http://projects.spring.io/spring-cloud/

 类似资料:
  • 主要内容:声明依赖关系,依赖关系配置,外部依赖,存储库,发布文件构建脚本定义了构建项目的过程; 每个项目包含一些依赖项和一些发表项。依赖性意味着支持构建项目的东西,例如来自其他项目的所需文件以及类路径中的外部(如或)。发布表示项目的结果,如测试类文件和构建文件,如文件。 负责构建和发布结果。 发布基于定义的任务。 可能希望将文件复制到本地目录,或将其上传到远程Maven或lvy存储库,或者可以在同一个多项目构建中使用另一个项目的文件。 发布的过程称为发布。 声

  • 我创建了一个将使用spring boot和Gradle的java项目。我想为不同的环境配置配置文件(在我的本地机器上进行开发,在服务器场机器上进行集成测试的systemtest等)。我将在内存数据库中使用h2用于开发环境,将SqlServer用于systemtest环境。在build.gradle中,我定义了以下依赖项 我创建了一个application.yml文件application-deve

  • 在使用Gradle构建的一个简单的Spring Java项目中,我使用io.Spring.dependency-management应用BOM,该BOM应该在全局指定依赖版本。 现在在BOM中,我已经覆盖了jackson-databind(2.9.5)的默认版本,从Spring Boot2.0.2.Release到2.9.10.4版本。 我在dependencyManagement部分指定了这个B

  • 如何编写自定义gradle插件来处理自定义存储库中自定义模块描述符中的依赖关系?gradle文档说了以下内容,但我还没有找到任何可以告诉我如何操作的内容。 即使您的项目使用的是自定义依赖关系管理系统或类似Eclipse的东西。类路径文件作为依赖关系管理的主数据,编写Gradle插件以在Gradle中使用此数据非常容易。 我一直在为ATG项目维护一个定制的常春藤解析器(源自此项目),但Gradle最

  • 我正在尝试构建一个简单的REST服务来学习OSGI。我正在使用Spark Servlet来处理请求。 我将 spark core 作为依赖项嵌入,在 maven 中构建了我的项目,并在部署时在 Karaf 中出现了布线包错误。 看起来我一个接一个地跟踪程序包,一个一个地解决每个错误,仅仅解决依赖关系就需要大约2个小时。显然我做错了什么。。 我应该如何执行此操作,以便使用 spark servlet

  • 我希望使用Gradle构建我的基于Groovy/Grails的项目,我们使用IntelliJ Idea作为IDE。 我使用的是IntelliJ 11.1.4版本,Gradle 1.2版本。 我的项目被配置为包含各种Groovy&Grails子项目的多项目构建。 我希望这将为我提供与通过Maven管理构建时相同的IDE支持,例如: 自动依赖关系管理(将新的依赖关系添加到各种Build.Gradle时