Gradle構建SpringBoot程序依賴管理之依賴版本自動控制

前言:Spring體系中很多庫之間相互依賴,但是由於版本之間差異比較大,我們需要比較精確的知道每個庫的版本對應關係,不然很容易造成“庫”與“庫”之間對應不上,導致部分功能無效,甚至是異常情況。程序員排查起來一個頭兩個大,本篇文章將介紹如何利用gradle的插件來實現版本自動管理機制

1、依賴管理

SpringBoot構建系統文檔
clipboard.png

  • 1、每個SpringBoot版本都提供了他能支持的依賴清單, 所以開發中我們不需要在配置文件中指定版本,SpringBoot會自動幫我們管理這些依賴,當我們升級SpringBoot的時候,SpringBoot所支持的依賴清單也會自動升級
  • 2、我們在用SpringBoot管理依賴的時候,可以自定義版本號覆蓋SpringBoot本身依賴的版本
  • 3、springBoot支持的依賴清單包括Spring所有模塊以及Springboot依賴的第三方庫
  • 4、每個發佈的SpringBoot版本都與一個基礎版本的SpringFramework有關聯,官方是不建議指定版本的

上述的官方文檔關於依賴管理的描述,總結下來就是:
在SpringBoot開發中,如果使用了依賴管理,那麼Spring所有模塊和SpringBoot依賴的第三方庫我們不需要指定版本號

關於SpringBoot依賴的第三庫在上述鏈接文檔的這個部分(點擊POM即可查看):

clipboard.png

⚠️:此處提供 SpringBoot 2.1.6 依賴的三方庫,其他版本自行找到指定版本的文檔查看

2、gradle自動依賴

本文重點講解gradle如何配置自動依賴,關於maven配置 點擊這裏查看

gradle配置點擊這裏

clipboard.png
文檔中描述:如果你想使用依賴關係管理,那麼你需要保證你的gradle的版本大於4.4

我們通過實戰方式,針對gradle配置自動依賴管理進行說明。

3、實戰

build.gradle配置

方式一: 將SpringBoot插件應用於項目,依賴的插件將依賴清單加載到項目中,詳細見配置中描述(建議直接使用此配置)

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來進行依賴管理控制也可以達到效果

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')
}

4、總結

  • Spring相關模塊,以及SpringBoot依賴的庫可以通過依賴管理,自動獲取最適合的庫版本
  • 未加入SpringBoot依賴清單的庫,版本號不可省略,需要手動設置版本
  • 版本依賴管理是開發中基礎環節,使用版本管理有效減少版本依賴的校對,可以提高開發效率

diboot 簡單高效的輕代碼開發框架

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章