java - 如何在 build.gradle 中选择版本
问题描述
如果您有一个带有该行的 build.gradle 文件,implementation 'org.springframework.boot:spring-boot-starter-web'
您如何选择它下载的 jar 版本以便获得最新版本?我见过一个项目,它是 2.2.4 版本,但在另一个项目中,我看到了与 2.2.5 版本相同的行。
解决方案
由于您删除了 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-dependencies
bom。这提供了与 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-web
在build.gradle
不提供实际版本的情况下声明依赖关系:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
如果您要更改org.springframework.boot
Gradle 插件的版本,则将应用与 Spring Boot 版本匹配的不同版本。
你可能会问,为什么要付出如此巨大的努力?
我们对 Spring 平台和第三方库持固执己见的看法,因此您可以轻松上手。
这就是为什么。
推荐阅读
- python - 在 Python 中打印最后 3 个字母相同的 5 个单词
- javascript - Reactjs 中的 Map 函数将添加对象放入数组中
- html - 对无法正常工作的图像使用媒体查询
- postgresql - Postgresql - 将 2019-11-03T08:00:00Z 存储在 postgres db 时间戳中,它返回 2019-11-03T09:00:00Z。日光于 2019 年 11 月 3 日生效
- weblogic - 由于 NameAlreadyBoundException 导致的 Weblogic 部署问题 - 在将 weblogic 从 10.3.6 升级到 Weblogic 12cR2 之后
- opencl - 将 OpenCL SPIR-V 转换为 Vulkan SPIR-V
- signalr - SignalR(原始)不向客户端发送消息
- acumatica - 如何从 Acumatica 中的 Ggraph 对象读取数据?
- sas - Proc Report-为不同的行分配不同的格式
- curl - Django 服务器拒绝所有 CURL 请求但邮递员请求成功