首页 > 解决方案 > 如何在 build.gradle 中选择版本

问题描述

如果您有一个带有该行的 build.gradle 文件,implementation 'org.springframework.boot:spring-boot-starter-web'您如何选择它下载的 jar 版本以便获得最新版本?我见过一个项目,它是 2.2.4 版本,但在另一个项目中,我看到了与 2.2.5 版本相同的行。

标签: javaspringspring-bootgradlebuild.gradle

解决方案


由于您删除了 Spring Boot 名称,我假设该项目已生成Spring Initializr。使用 Initializr 生成的项目应用了两个插件:

io.spring.dependency-management是 Spring 为 Gradle 构建提供类似 Maven 的依赖管理的固执己见的方式。它允许声明依赖版本一次,然后在声明实际依赖时省略版本。

org.springframework.boot插件执行以下操作:

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

(来自:管理依赖项

这在实践中意味着什么?

当您为 Spring Boot 2.1.14 生成项目时,您build.gradle将看起来类似于以下内容:

plugins {
  id 'org.springframework.boot' version '2.1.14.RELEASE'
  id 'io.spring.dependency-management' version '1.0.9.RELEASE'
}

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
}

org.springframework.boot插件指示应用Spring Boot 2.1.14io.spring.dependency-management的物料清单 (BOM) 。BOM 声明以下版本:spring-boot-starter-web

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.1.14.RELEASE</version>
</dependency>

(来自:Maven 中心

这种组合允许spring-boot-starter-webbuild.gradle不提供实际版本的情况下声明依赖关系:

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
}

如果您要更改org.springframework.bootGradle 插件的版本,则将应用与 Spring Boot 版本匹配的不同版本。

你可能会问,为什么要付出如此巨大的努力?

我们对 Spring 平台和第三方库持固执己见的看法,因此您可以轻松上手。

这就是为什么。


推荐阅读