大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Maven依賴關(guān)系

Maven依賴關(guān)系

更新時間:2021-07-14 15:54:43 來源:動力節(jié)點(diǎn) 瀏覽1368次

1.何為依賴?

我們在平時的項目開發(fā)中也是同理,你需要依賴一些東西才能實(shí)現(xiàn)相應(yīng)的功能,但相應(yīng)的功能或許也可以依賴其它的東西實(shí)現(xiàn),比如數(shù)據(jù)庫操作吧,你可以依賴hibernate,但你也可以通過mybatis來做。

這就是所謂的依賴關(guān)系咯。

以前我們需要手動的去找hibernate或者mybatis的jar包,系統(tǒng)拋異常我們還不知哪里報錯,通過琢磨才明白沒有引入相應(yīng)的jar包,然后就去找啊找,找到了然后引入到工程當(dāng)中。在這里我們就看到maven的好處了,它就是一個倉庫,倉庫里面有各種各樣的包,想要什么就在pom.xml中依賴一下就好了,就算倉庫中沒有的包也可以把它扔到倉庫中,想用的時候就依賴一下。

2.依賴傳遞的范圍

(1)根據(jù)Jar包的不同,需要為其設(shè)置不同的傳遞方式,即傳遞范圍。Maven中的依賴傳遞范圍設(shè)置在<scope>標(biāo)簽中。其取值有6種:

1)compile

第1類Jar包應(yīng)設(shè)置的范圍。是默認(rèn)值。其會向下傳遞該依賴。

2)test

第2類Jar包應(yīng)設(shè)置的范圍。其不會向下傳遞該依賴。

3)provided

第3類Jar包應(yīng)設(shè)置的范圍。其不會向下傳遞該依賴。

4)runtime

第4類Jar包應(yīng)設(shè)置的范圍。其會向下傳遞該依賴。

5)system

不從本地倉庫查找指定的依賴,而從<systemPath>路徑查找。

3.依賴關(guān)系分類

A.直接依賴

項目A要用到別的項目B的架構(gòu)的東西,所以項目A直接依賴B項目

B.間接依賴

項目B依賴A,C依賴B,那么C間接依賴A

C.依賴傳遞性

Maven的依賴是具有傳遞性的,比如A-&gt;B,B-&gt;C,那么A間接的依賴于C,這就是依賴的傳遞性,其中A對于B是第一直接依賴,B對于C是第二直接依賴,C為A的傳遞性依賴。

D.可選依賴與排除依賴

傳遞性依賴會給項目隱式的引入很多依賴,這極大的簡化了項目依賴的管理,但是有些時候這種特性也會帶來問題,它可能會把我們不需要的jar包也引入到了工程當(dāng)中,使項目結(jié)構(gòu)變得更復(fù)雜。或者你想替換掉默認(rèn)的依賴換成自己想要的jar包,這時候就需要用到依賴排除。

Maven依賴關(guān)系

例子中spring-core包依賴了commons-logging包,我們使用exclusions元素聲明排除依賴,exclusions可以包含一個或者多個exclusion子元素,因此可以排除一個或者多個傳遞性依賴。需要注意的是,聲明exclusions的時候只需要groupId和artifactId,而不需要version元素,這是因為只需要groupId和artifactId就能唯一定位依賴圖中的某個依賴。換句話說,Maven解析后的依賴中,不可能出現(xiàn)groupId和artifactId相同,但是version不同的兩個依賴。

Maven依賴關(guān)系

E.依賴沖突(調(diào)解)

下面我們來思考這樣一個問題,如果A-&gt;B-&gt;C-&gt;X(1.0),A-&gt;D-X(2.0),即A間接依賴X,我們可以看到有兩條路徑都依賴X,那么maven將會選擇哪個版本的X?maven當(dāng)中有一套自己的規(guī)則,我們來說明一下,maven傳遞性依賴的一些規(guī)則以及如何排除依賴沖突。

Maven里面對于傳遞性依賴有以下幾個規(guī)則:

1.最短路徑原則:如果A對于依賴路徑中有兩個相同的jar包,那么選擇路徑短的那個包,路徑最近者優(yōu)先,上述會選X(2.0)。

2.第一聲明優(yōu)先原則:如果A對于依賴路徑中有兩個相同的jar包,路徑長度也相同,那么依賴寫在前面的優(yōu)先。例如:A->B->F(1.0),A->C->F(2.0),會選F(1.0)。

3.可選依賴不會被傳遞,如A->B,B->;C,B->;D,A對B直接依賴,B對C和D是可選依賴,那么在A中不會引入C和D。可選依賴通過optional元素配置,true表示可選。如果要在A項目中使用C或者D則需要顯式地聲明C或者D依賴。

版本號統(tǒng)一管理

聚合

在Maven中,可能我們要做多個test,但是一個一個的測試去做,這樣會很麻煩,為了簡單方便,我們把所有的test package,都匯聚到一個package中,我們利用這個測試可以進(jìn)行所有的test的測試,這個過程就是聚合。目前菜鳥的水平來看這個聚合,主要功能就是方便Test的!

以上就是動力節(jié)點(diǎn)小編介紹的"Maven依賴關(guān)系",希望對大家有幫助,想了解更多可查看Maven教程。動力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久九九免费视频 | 亚洲视频在线观看 | 亚洲成人高清在线 | 国产日产久久 | 亚洲国产成人超福利久久精品 | 免费看成人国产一区二区三区 | 手机免费看一级片 | 性欧美video视频另类 | 久爱午夜精品免费视频 | 99热久久这里只有精品在 | 久久精品中文字幕不卡一二区 | 四虎院影永久在线观看 | 欧美乱淫视频 | 精品一区 二区三区免费毛片 | 国产精品资源网站在线观看 | 国产一级一级毛片 | 香蕉网站在线观看 | 一级网站片 | 国产成人精品久久 | 亚洲欧美国产日产综合不卡 | 色婷婷六月桃花综合影院 | 国产国语videosex另类 | 国产在线精品一区二区高清不卡 | 免费视频一区 | 97精品在线观看 | www.射.com| 免费午夜在线视频 | 亚洲福利精品一区二区三区 | 国产精品天干天干 | 国产成人久久精品区一区二区 | 国产动作大片中文字幕 | 亚洲精品久久玖玖玖玖 | 亚洲视频在线免费观看 | 亚洲第一毛片 | 婷婷91| 国产欧美日韩精品第三区 | 99热热久久 | 国产一区二区精品久久小说 | 欧美三级中文字幕 | 国产波波社区精品视频 | 亚洲综合久 |