如何在 build.gradle 中选择版本

kai*_*ido 2 java spring gradle build.gradle spring-boot

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

tho*_*est 5

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

\n\n\n\n

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

\n\n

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

\n\n
\n

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

\n\n

(来自:管理依赖关系

\n
\n\n

这在实践中意味着什么?

\n\n

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

\n\n
plugins {\n  id \'org.springframework.boot\' version \'2.1.14.RELEASE\'\n  id \'io.spring.dependency-management\' version \'1.0.9.RELEASE\'\n}\n\ndependencies {\n  implementation \'org.springframework.boot:spring-boot-starter-web\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
plugins {\n  id \'org.springframework.boot\' version \'2.1.14.RELEASE\'\n  id \'io.spring.dependency-management\' version \'1.0.9.RELEASE\'\n}\n\ndependencies {\n  implementation \'org.springframework.boot:spring-boot-starter-web\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

(来自:Maven 中心

\n\n

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

\n\n
dependencies {\n  implementation \'org.springframework.boot:spring-boot-starter-web\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n
\n

我们对 Spring 平台和第三方库采取固执己见的观点,因此您可以轻松上手。

\n
\n\n

这就是为什么。

\n