spring boot的maven配置依賴(lài)詳解
本文介紹了spring boot的maven配置依賴(lài)詳解,分享給大家,具體如下:
我們通過(guò)引用spring-boot-starter-parent,添加spring-boot-starter-web
可以實(shí)現(xiàn)web項(xiàng)目的功能,當(dāng)然不使用spring-boot-start-web,通過(guò)自己添加的依賴(lài)包也可以實(shí)現(xiàn),但是需要一個(gè)個(gè)添加,費(fèi)時(shí)費(fèi)力,而且可能產(chǎn)生版本依賴(lài)沖突。我們來(lái)看下springboot的依賴(lài)配置:
利用pom的繼承,一處聲明,處處使用。在最頂級(jí)的spring-boot-dependencies中,使用dependencyManagement讓所有子項(xiàng)目引用一個(gè)依賴(lài)而不用顯式的列出版本號(hào),將結(jié)構(gòu)信息,部署信息,共同的依賴(lài)信息放置在統(tǒng)一的位置。dependencyManagement只聲明依賴(lài),并不真正引入,因此子項(xiàng)目需要通過(guò)dependencies引入相關(guān)依賴(lài)。
1)spring-boot-dependencies組成:
第三方依賴(lài)的版本號(hào)
插件的版本號(hào)
springboot的依賴(lài)包,固定版本的parent依賴(lài)固定版本包,如果升級(jí)只需修改parent的版本號(hào),即可統(tǒng)一更換依賴(lài)。
\
第三方依賴(lài),解決了第三方依賴(lài)版本不兼容的沖突,使用第三方依賴(lài)更加便捷
插件
2)spring-boot-parent組成:
添加額外的依賴(lài),用戶(hù)會(huì)使用的第三方依賴(lài),但是spring-boot-dependencies中沒(méi)有依賴(lài)
測(cè)試相關(guān)的依賴(lài)
以及其他插件及profile配置
3)spring-boot-starter-parent組成:
父級(jí)spring-boot-dependencies無(wú)需多說(shuō)
依賴(lài)spring-core
在src/main/resources目錄下,僅application.yml和application.properties是資源文件并需要進(jìn)行過(guò)濾;在src/main/resources下除application.yml和application.properties外也是資源文件,但不需要過(guò)濾。過(guò)濾會(huì)將文件中${...}替換為系統(tǒng)屬性或者項(xiàng)目屬性值。
4)sprint-boot-starter-*
可以通過(guò)parent來(lái)統(tǒng)一管理,這也就是springboot的四大神器之一的starter所帶來(lái)的便捷。根據(jù)不同的功能,添加不同的starter即可。在springboot源碼包中我們可以看到spring-boot-starters中有50多個(gè)starter
圖中根目錄pom.xml為spring-boot-starters,使用maven的聚合模塊,其他starter作為聚合模塊的子目錄存在,目的是一次構(gòu)建多個(gè)項(xiàng)目模塊,如下圖:
通過(guò)models來(lái)管理所有的starter,可以一次性構(gòu)建所有starter:
使用assembly插件,將一組文件、目錄、依賴(lài)元素組裝成一個(gè)歸檔文件,如下圖:
使用該插件,executions執(zhí)行器會(huì)執(zhí)行mvn assembly:assembly,只運(yùn)行一次,描述文件的路徑為src/main/assembly/starter-poms-assembly.xml,我們來(lái)看下描述文件:
打包的文件格式為zip,模塊文件為**/pom.xml,該插件執(zhí)行完效果如下:
會(huì)在src同級(jí)目錄下生成target文件夾并在其下生成:
zip文件中所有子starter文件的依賴(lài)
在源碼根目錄中與spring-boot-starters同級(jí)的目錄中,spring-boot-deployment-tests,spring-boot-integration-tests,spring-boot-samples都使用了pom的聚合模塊功能。包括spring-boot-1.5.1.RELEASE整個(gè)項(xiàng)目也是使用聚合模塊功能??梢允褂胢vnw對(duì)項(xiàng)目進(jìn)行統(tǒng)一構(gòu)建。
結(jié):
spring-boot的maven配置大概如上所述,使用到了
a.pom繼承:一處聲明,處處使用
b.pom聚合:一次構(gòu)建多個(gè)項(xiàng)目模塊
c.其他插件,各種配置
能讓我們?cè)趯?duì)spring-boot實(shí)現(xiàn)有認(rèn)識(shí)的同時(shí),加深對(duì)maven配置的理解。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 在SpringBoot下讀取自定義properties配置文件的方法
- Spring Boot 日志配置方法(超詳細(xì))
- SpringBoot + Spring Security 基本使用及個(gè)性化登錄配置詳解
- springboot如何讀取配置文件(application.yml)中的屬性值
- 詳解SpringBoot配置連接池
- SpringBoot獲取yml和properties配置文件的內(nèi)容
- spring boot Logging的配置以及使用詳解
- spring boot開(kāi)發(fā)遇到坑之spring-boot-starter-web配置文件使用教程
- Springboot配置doris連接的實(shí)現(xiàn)示例
相關(guān)文章
Java?20在Windows11系統(tǒng)下的簡(jiǎn)易安裝教程
這篇文章主要給大家介紹了關(guān)于Java?20在Windows11系統(tǒng)下的簡(jiǎn)易安裝教程,學(xué)習(xí)Java的同學(xué),第一步就是安裝好Java環(huán)境,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07創(chuàng)建好SpringBoot項(xiàng)目后但是找不到Maven的解決方法
在使用IDEA專(zhuān)業(yè)版創(chuàng)建好SpringBoot項(xiàng)目后,發(fā)現(xiàn)上方導(dǎo)航欄的運(yùn)行按鈕是灰色的,而且左側(cè)導(dǎo)航欄的pom.xml的圖標(biāo)顏色也不是正常的,點(diǎn)開(kāi)右側(cè)導(dǎo)航欄的Maven后,發(fā)現(xiàn)Maven找不到,所以本文介紹了創(chuàng)建好SpringBoot項(xiàng)目后但是找不到Maven的解決方法,需要的朋友可以參考下2024-10-10StreamAPI多次消費(fèi)一個(gè)stream代碼實(shí)例
這篇文章主要介紹了StreamAPI多次消費(fèi)一個(gè)stream代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04SpringMVC解析JSON請(qǐng)求數(shù)據(jù)問(wèn)題解析
這篇文章主要介紹了SpringMVC解析JSON請(qǐng)求數(shù)據(jù)問(wèn)題解析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04java基礎(chǔ)之 Arrays.toString()方法詳解
這篇文章主要介紹了java基礎(chǔ)之 Arrays.toString()方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02hadoop中實(shí)現(xiàn)java網(wǎng)絡(luò)爬蟲(chóng)(示例講解)
下面小編就為大家?guī)?lái)一篇hadoop中實(shí)現(xiàn)java網(wǎng)絡(luò)爬蟲(chóng)(示例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09MyBatis基礎(chǔ)支持DataSource實(shí)現(xiàn)源碼解析
這篇文章主要為大家介紹了MyBatis基礎(chǔ)支持DataSource實(shí)現(xiàn)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法)
這篇文章主要介紹了java實(shí)現(xiàn)找出兩個(gè)文件中相同的單詞(兩種方法),需要的朋友可以參考下2020-08-08