在 Spring Boot 中更新底层 Spring 版本
Posted
技术标签:
【中文标题】在 Spring Boot 中更新底层 Spring 版本【英文标题】:Updating the underlying spring version in spring boot 【发布时间】:2017-11-06 10:28:38 【问题描述】:我正在处理这个春季错误报告中描述的确切问题。
https://jira.spring.io/browse/SPR-16149
Juergen Hoeller 已修复该错误。他的评论:
当前的 5.0.2.BUILD-SNAPSHOT 同时包含此版本。我会在星期一之前将其移植到 4.3.13。
太棒了,但是如何在使用 spring-boot-starter 时更新我的 spring 版本?以下是我的 gradle 文件,其中不包含指向 Spring 版本的链接。这是由我的 Spring Boot 版本处理的吗? spring starter 项目是设置和安装特定的 spring 版本还是只使用最新版本?
buildscript
ext
springBootVersion = '1.5.7.RELEASE'
repositories
mavenCentral()
jcenter()
dependencies
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'company.'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories
mavenCentral()
maven
url 'https://repo.spring.io/libs-milestone'
dependencyManagement
imports
mavenBom 'org.springframework.cloud:spring-cloud-stream-dependencies:Elmhurst.M2'
dependencies
compile("org.springframework.boot:spring-boot-starter")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit")
compile(group: 'org.modelmapper', name: 'modelmapper', version: '0.7.5')
compile("io.springfox:springfox-swagger2:2.7.0")
compile('io.springfox:springfox-swagger-ui:2.7.0')
testCompile("org.springframework.boot:spring-boot-starter-test")
testCompile "org.mockito:mockito-core:2.+"
runtime group: 'com.h2database', name: 'h2', version: '1.0.60'
// runtime("mysql:mysql-connector-java")
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:有定义为here 的项目特定属性。您可以覆盖 gradle/pom 中的属性,以便能够覆盖正在使用的版本。
我想在 gradle 中应该也是类似的。
更新:
我的项目 pom.xml 将具有所有依赖项以及以下内容:
<properties>
<thymeleaf.version>3.0.8.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
</properties>
这将允许我的应用程序在 Spring Boot 1.5.* 仍然附带时使用 Thymeleaf 3:
<thymeleaf.version>2.1.5.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>1.4.0</thymeleaf-layout-dialect.version>
所以你应该能够在 Gradle 中做类似的事情——一个你定义属性的地方。
【讨论】:
感谢您的回答,但我不确定如何覆盖 gradle 中的版本。您可以在答案中添加一些示例代码吗?另外,您能否提供有关该 pom.xml 文件如何工作的更多详细信息?以上是关于在 Spring Boot 中更新底层 Spring 版本的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 2.2.0,性能提升+支持Java13
具有两个数据源的 Spring Boot Batch 导致 javax.persistence.TransactionRequiredException:执行更新/删除查询
spring boot使用jpa的@Modify的clearAutomatically=true的作用