前言:Spring体系中不少库之间相互依赖,可是因为版本之间差别比较大,咱们须要比较精确的知道每一个库的版本对应关系,否则很容易形成“库”与“库”之间对应不上,致使部分功能无效,甚至是异常状况。程序员排查起来一个头两个大,本篇文章将介绍如何利用gradle的插件来实现版本自动管理机制
SpringBoot构建系统文档html
上述的官方文档关于依赖管理的描述,总结下来就是:
在SpringBoot开发中,若是使用了依赖管理,那么Spring全部模块和SpringBoot依赖的第三方库咱们不须要指定版本号java
关于SpringBoot依赖的第三库在上述连接文档的这个部分(点击POM便可查看):git
⚠️:此处提供 SpringBoot 2.1.6 依赖的三方库,其余版本自行找到指定版本的文档查看
本文重点讲解gradle如何配置自动依赖,关于maven配置 点击这里查看
gradle配置点击这里程序员
文档中描述:若是你想使用依赖关系管理,那么你须要保证你的gradle的版本大于4.4github
咱们经过实战方式,针对gradle配置自动依赖管理进行说明。web
build.gradle配置spring
方式一: 将SpringBoot插件应用于项目,依赖的插件将依赖清单加载到项目中,详细见配置中描述(建议直接使用此配置)apache
plugins { //id 'java' //springboot插件,加入版本,那么Spring相关依赖,则自动加入(当使用其余插件的时候,还会自动加载插件所带的任务) id 'org.springframework.boot' version '2.1.6.RELEASE' //第一种引入方式:写在此处,须要手动设置依赖管理的版本,不然没法执行(手动指定版本,好处是插件集中管理在plugins里面) // id 'io.spring.dependency-management' version '1.0.8.RELEASE' } apply plugin: 'java' //第二种引入方式:应用依赖管理插件,自动给插件追加版本号(建议使用此配置) apply plugin: 'io.spring.dependency-management' sourceCompatibility = 1.8 repositories { mavenLocal() maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} } //设置commons-pool2版本为'2.6.1',Spring依赖的是2.6.2 ext['commons-pool2.version'] = '2.6.1' dependencies { //Spring模块 compile("org.springframework.boot:spring-boot-starter-web") //Spring依赖的第三方模块(2.1.6依赖的是3.8.1) compile("org.apache.commons:commons-lang3") //Spring依赖的第三方模块(2.1.6依赖的是2.6.2)指定依赖版本为2.6.1 compile('org.apache.commons:commons-pool2') //未被依赖的库须要手动:我司开源的 轻代码开发框架核心包,文末源码连接 compile('com.diboot:diboot-core:2.0.0') }
方式二:若是你仅仅是为了要依赖管理,而不须要插件的功能,你可使用SpringBootPlugin提供的BOM_COORDINATES来进行依赖管理控制也能够达到效果springboot
plugins { //依赖springboot插件,可是不该用 id 'org.springframework.boot' version '2.1.6.RELEASE' apply false } apply plugin: 'java' apply plugin: 'io.spring.dependency-management' //使用SpringBootPlugin提供的依赖插件 dependencyManagement { imports { mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES } } sourceCompatibility = 1.8 repositories { mavenLocal() maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} } //设置commons-pool2版本为'2.6.1',Spring依赖的是2.6.2 ext['commons-pool2.version'] = '2.6.1' dependencies { //Spring模块 compile("org.springframework.boot:spring-boot-starter-web") //Spring依赖的第三方模块(2.1.6依赖的是3.8.1) compile("org.apache.commons:commons-lang3") //Spring依赖的第三方模块(2.1.6依赖的是2.6.2)指定依赖版本为2.6.1 compile('org.apache.commons:commons-pool2') //未被依赖的库须要手动:我司开源的 轻代码开发框架核心包,文末源码连接 compile('com.diboot:diboot-core:2.0.0') }
- Spring相关模块,以及SpringBoot依赖的库能够经过依赖管理,自动获取最适合的库版本
- 未加入SpringBoot依赖清单的库,版本号不可省略,须要手动设置版本
- 版本依赖管理是开发中基础环节,使用版本管理有效减小版本依赖的校对,能够提升开发效率