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

前言:Spring體系中不少庫之間相互依賴,可是因爲版本之間差別比較大,咱們須要比較精確的知道每一個庫的版本對應關係,否則很容易形成「庫」與「庫」之間對應不上,致使部分功能無效,甚至是異常狀況。程序員排查起來一個頭兩個大,本篇文章將介紹如何利用gradle的插件來實現版本自動管理機制

一、依賴管理

SpringBoot構建系統文檔
clipboard.pnghtml

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

上述的官方文檔關於依賴管理的描述,總結下來就是:
在SpringBoot開發中,若是使用了依賴管理,那麼Spring全部模塊和SpringBoot依賴的第三方庫咱們不須要指定版本號java

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

clipboard.png

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

二、gradle自動依賴

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

gradle配置點擊這裏程序員

clipboard.png
文檔中描述:若是你想使用依賴關係管理,那麼你須要保證你的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依賴清單的庫,版本號不可省略,須要手動設置版本
  • 版本依賴管理是開發中基礎環節,使用版本管理有效減小版本依賴的校對,能夠提升開發效率

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

相關文章
相關標籤/搜索