gradle第三方Jar包依賴統(tǒng)一管理方式
背景
一個(gè)gradle的工程中往往包含很多的子工程,每個(gè)子工程都有其自己的Jar包依賴。
現(xiàn)實(shí)情況是各個(gè)子工程對(duì)jar包的引入都是比較隨意的,版本號(hào)各式各樣,如何統(tǒng)一各個(gè)子工程的版本號(hào)?統(tǒng)一管理第三方依賴?
版本號(hào)統(tǒng)一后,若某個(gè)組件有漏洞能夠統(tǒng)一升級(jí),能夠直觀的看到依賴情況,可以解決版本沖突等。
實(shí)現(xiàn)
使用spring提供的依賴管理插件:
依賴管理插件和配置方法:https://docs.spring.io/dependency-management-plugin/docs/1.0.8.RELEASE/reference/html/
1.頂層模塊build.gradle添加依賴管理插件
plugins { id "io.spring.dependency-management" version "1.0.6.RELEASE" }
buildscript { repositories { maven { url 'https://repo.spring.io/plugins-snapshot' } } dependencies { classpath 'io.spring.gradle:dependency-management-plugin:1.0.7.BUILD-SNAPSHOT' } } apply plugin: "io.spring.dependency-management"
2.頂層模塊build.gradle添加所有管理依賴包
dependencyManagement { dependencies { dependency 'org.springframework:spring-core:4.0.3.RELEASE' } }
3.子模塊build.gradle添加免版本號(hào)的包
dependencies { compile 'org.springframework:spring-core' }
實(shí)例
1.頂層模塊build.gradle添加依賴管理插件
2.頂層模塊build.gradle添加所有管理依賴包
3.子模塊build.gradle添加免版本號(hào)的包
管理原則
- 子模塊添加依賴的包需要在頂層模塊的依賴管理中聲明
- 如果子模塊依賴的包在頂層模塊中不存在,優(yōu)先在頂層模塊的依賴管理中聲明
- 如果子模塊依賴的包版本與頂層模塊依賴管理中聲明版本不一致,優(yōu)先升級(jí)頂層模塊的依賴管理中聲明的版本,其次是在子模塊依賴中覆蓋包的版本
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring boot項(xiàng)目導(dǎo)入依賴后代碼報(bào)錯(cuò)問題的解決方法
這篇文章主要給大家介紹了關(guān)于spring boot項(xiàng)目導(dǎo)入依賴后代碼報(bào)錯(cuò)問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Java實(shí)現(xiàn)LRU緩存的實(shí)例詳解
這篇文章主要介紹了Java實(shí)現(xiàn)LRU緩存的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-08-08Scheduler定時(shí)任務(wù)調(diào)度詳解
文章介紹了SysJobServiceImpl類中定時(shí)任務(wù)調(diào)度的相關(guān)方法,包括清除、檢查存在性、創(chuàng)建、暫停、恢復(fù)、刪除任務(wù),以及觸發(fā)任務(wù),并提到了JobKey、CronUtils、ScheduleUtils、SpringUtils等工具類的使用,適用于Spring管理環(huán)境2025-01-01Java對(duì)象轉(zhuǎn)Json,關(guān)于@JSONField對(duì)象字段重命名和順序問題
這篇文章主要介紹了Java對(duì)象轉(zhuǎn)Json,關(guān)于@JSONField對(duì)象字段重命名和順序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08解決springboot的findOne方法沒有合適的參數(shù)使用問題
這篇文章主要介紹了解決springboot的findOne方法沒有合適的參數(shù)使用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08MySQL?MyBatis?默認(rèn)插入當(dāng)前時(shí)間方式
這篇文章主要介紹了MySQL?MyBatis?默認(rèn)插入當(dāng)前時(shí)間方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Java開發(fā)如何把數(shù)據(jù)庫里的未付款訂單改成已付款
這篇文章主要介紹了Java開發(fā)如何把數(shù)據(jù)庫里的未付款訂單改成已付款,先介紹MD5算法,簡單的來說,MD5能把任意大小、長度的數(shù)據(jù)轉(zhuǎn)換成固定長度的一串字符,實(shí)現(xiàn)思路非常簡單需要的朋友可以參考下2022-11-11springboot整合RabbitMQ 中的 TTL實(shí)例代碼
TTL 是 RabbitMQ 中一個(gè)消息或者隊(duì)列的屬性,表明一條消息或者該隊(duì)列中的所有消息的最大存活時(shí)間,單位是毫秒,這篇文章主要介紹了springboot整合RabbitMQ 中的 TTL,需要的朋友可以參考下2022-09-09