前言: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依賴清單的庫,版本號不可省略,須要手動設置版本
- 版本依賴管理是開發中基礎環節,使用版本管理有效減小版本依賴的校對,能夠提升開發效率