精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Maven的這7個問題你思考過沒有?

開發(fā) 后端
在如今的互聯(lián)網(wǎng)項目開發(fā)當(dāng)中,特別是Java領(lǐng)域,可以說Maven隨處可見。Maven的倉庫管理、依賴管理、繼承和聚合等特性為項目的構(gòu)建提供了一整套完善的解決方案,可以說如果你搞不懂Maven,那么一個多模塊的項目足以讓你頭疼,依賴沖突就會讓你不知所措,甚至搞不清楚項目是如何運行起來的.....
  • 1、本地倉庫?Maven到底有哪些倉庫?它們什么關(guān)系?
  • 2、關(guān)于的使用
  • 3、既然Maven進(jìn)行了依賴管理,為什么還會出現(xiàn)依賴沖突?處理依賴沖突的手段是?
  • 4、引入依賴的最佳實踐,提前發(fā)現(xiàn)問題!
  • 5、Maven規(guī)范化目錄結(jié)構(gòu)
  • 6、Maven的生命周期
  • 7、關(guān)于scope依賴范圍

在如今的互聯(lián)網(wǎng)項目開發(fā)當(dāng)中,特別是Java領(lǐng)域,可以說Maven隨處可見。Maven的倉庫管理、依賴管理、繼承和聚合等特性為項目的構(gòu)建提供了一整套完善的解決方案,可以說如果你搞不懂Maven,那么一個多模塊的項目足以讓你頭疼,依賴沖突就會讓你不知所措,甚至搞不清楚項目是如何運行起來的.....OK,博主就曾經(jīng)被Maven“傷害”過,那么該專題的目的就是:徹底搞定Maven!

回想一下,當(dāng)你新到一家公司,安裝完JDK后就會安裝配置Maven(MAVEN_HOME、path),很大可能性你需要修改settings.xml文件,比如你會修改本地倉庫地址路徑,比如你很可能會copy一段配置到你的settings.xml中(很可能就是私服的一些配置)。接下來,你會到IDEA或者Eclipse中進(jìn)行Maven插件配置,然后你就可以在工程中的pom.xml里面開始添加標(biāo)簽來管理jar包,在Maven規(guī)范的目錄結(jié)構(gòu)下進(jìn)行編寫代碼,最后你會通過插件的方式來進(jìn)行測試、打包(jar or war)、部署、運行。

上面描述了我們對Maven的一些使用方式,下面我們進(jìn)行一些思考:

1、本地倉庫?Maven到底有哪些倉庫?它們什么關(guān)系?

Maven倉庫:

Maven 的這 7 個問題你思考過沒有?

 

img

本地倉庫路徑配置:

Maven 的這 7 個問題你思考過沒有?

 

img

你要jar包,不可能每次都要聯(lián)網(wǎng)去下載吧,多費勁,所以本地倉庫就是相當(dāng)于加了一層jar包緩存,先到這里來查。如果這里查不到,那么就去私服上找,如果私服也找不到,那么去中央倉庫去找,找到j(luò)ar后,會把jar的信息同步到私服和本地倉庫中。

私服,就是公司內(nèi)部局域網(wǎng)的一臺服務(wù)器而已,你想一下,當(dāng)你的工程Project-A依賴別人的Project-B的接口,怎么做呢?沒有Maven的時候,當(dāng)然是copy Project-B jar到你的本地lib中引入,那么Maven的方式,很顯然需要其他人把Project-B deploy到私服倉庫中供你使用。因此私服中存儲了本公司的內(nèi)部專用的jar!不僅如此,私服還充當(dāng)了中央倉庫的鏡像,說白了就是一個代理!

中央倉庫:該倉庫存儲了互聯(lián)網(wǎng)上的jar,由Maven團(tuán)隊來維護(hù),地址是:http://repo1.maven.org/maven2/。

2、關(guān)于的使用

依賴管理:

Maven 的這 7 個問題你思考過沒有?

 

img

Maven 的這 7 個問題你思考過沒有?

 

img

其實這個標(biāo)簽揭示了jar的查找坐標(biāo):groupIdartifactIdversion

一般而言,我們可以到私服上輸入artifactId進(jìn)行搜索,或者到http://search.maven.org/、http://mvnrepository.com/上進(jìn)行查找確定坐標(biāo)。

version分為開發(fā)版本(Snapshot)和發(fā)布版本(Release),那么為什么要分呢?

在實際開發(fā)中,我們經(jīng)常遇到這樣的場景,比如A服務(wù)依賴于B服務(wù),A和B同時開發(fā),B在開發(fā)中發(fā)現(xiàn)了BUG,修改后,將版本由1.0升級為2.0,那么A必須也跟著在POM.XML中進(jìn)行版本升級。過了幾天后,B又發(fā)現(xiàn)了問題,進(jìn)行修改后升級版本發(fā)布,然后通知A進(jìn)行升級...可以說這是開發(fā)過程中的版本不穩(wěn)定導(dǎo)致了這樣的問題。

Maven,已經(jīng)替我們想好了解決方案,就是使用Snapshot版本,在開發(fā)過程中B發(fā)布的版本標(biāo)志為Snapshot版本,A進(jìn)行依賴的時候選擇Snapshot版本,那么每次B發(fā)布的話,會在私服倉庫中,形成帶有時間戳的Snapshot版本,而A構(gòu)建的時候會自動下載B最新時間戳的Snapshot版本!

3、既然Maven進(jìn)行了依賴管理,為什么還會出現(xiàn)依賴沖突?處理依賴沖突的手段是?

依賴的版本?

Maven 的這 7 個問題你思考過沒有?

 

img

首先來說,對于Maven而言,同一個groupId同一個artifactId下,只能使用一個version

根據(jù)上圖的依賴順序,將使用1.2版本的jar。

現(xiàn)在,我們可以思考下了,比如工程中需要引入A、B,而A依賴1.0版本的C,B依賴2.0版本的C,那么問題來了,C使用的版本將由引入A、B的順序而定?這顯然不靠譜!如果A的依賴寫在B的依賴后面,將意味著最后引入的是1.0版本的C,很可能在運行階段出現(xiàn)類(ClassNotFoundException)、方法(NoSuchMethodError)找不到的錯誤(因為B使用的是高版本的C)!

這里其實涉及到了2個概念:依賴傳遞(transitive)、Maven的最近依賴策略。

依賴傳遞:如果A依賴B,B依賴C,那么引入A,意味著B和C都會被引入。

Maven的最近依賴策略:如果一個項目依賴相同的groupId、artifactId的多個版本,那么在依賴樹(mvn dependency:tree)中離項目最近的那個版本將會被使用。(從這里可以看出Maven是不是有點小問題呢?能不能選擇高版本的進(jìn)行依賴么?據(jù)了解,Gradle就是version+策略)

現(xiàn)在,我們可以想想如何處理依賴沖突呢?

想法1:要使用哪個版本,我們是清楚的,那么能不能不管如何依賴傳遞,都可以進(jìn)行版本鎖定呢?

使用[這種主要用于子模塊的版本一致性中]

想法2:在依賴傳遞中,能不能去掉我們不想依賴的?

使用[在實際中我們可以在IDEA中直接利用插件幫助我們生成]

想法3:既然是最近依賴策略,那么我們就直接使用顯式依賴指定版本,那不就是最靠近項目的么?

使用

4、引入依賴的最佳實踐,提前發(fā)現(xiàn)問題!

在工程中,我們避免不了需要加一些依賴,也許加了依賴后運行時才發(fā)現(xiàn)存在依賴沖突在去解決,似乎有點晚!那么能不能提前發(fā)現(xiàn)問題呢?

如果我們新加入一個依賴的話,那么先通過mvn dependency:tree命令形成依賴樹,看看我們新加入的依賴,是否存在傳遞依賴,傳遞依賴中是否和依賴樹中的版本存在沖突,如果存在多個版本沖突,利用上文的方式進(jìn)行解決!

5、Maven規(guī)范化目錄結(jié)構(gòu)

Maven 的這 7 個問題你思考過沒有?

 

img

這里需要注意2點:

第一:src/main下內(nèi)容最終會打包到Jar/War中,而src/test下是測試內(nèi)容,并不會打包進(jìn)去。

第二:src/main/resources中的資源文件會COPY至目標(biāo)目錄,這是Maven的默認(rèn)生命周期中的一個規(guī)定動作。(想一想,hibernate/mybatis的映射XML需要放入resources下,而不能在放在其他地方了)

6、Maven的生命周期

Maven生命周期:

Maven 的這 7 個問題你思考過沒有?

 

img

我們只需要注意一點:執(zhí)行后面的命令時,前面的命令自動得到執(zhí)行。

實際上,我們最常用的就是這么幾個:

clean:有問題,多清理!

package:打成Jar or War包,會自動進(jìn)行clean+compile

install:將本地工程Jar上傳到本地倉庫

deploy:上傳到私服

7、關(guān)于scope依賴范圍

既然,Maven的生命周期存在編譯、測試、運行這些過程,那么顯然有些依賴只用于測試,比如junit;有些依賴編譯用不到,只有運行的時候才能用到,比如mysql的驅(qū)動包在編譯期就用不到(編譯期用的是JDBC接口),而是在運行時用到的;還有些依賴,編譯期要用到,而運行期不需要提供,因為有些容器已經(jīng)提供了,比如servlet-api在tomcat中已經(jīng)提供了,我們只需要的是編譯期提供而已。

總結(jié)來說:

compile:默認(rèn)的scope,運行期有效,需要打入包中。

provided:編譯期有效,運行期不需要提供,不會打入包中。

runtime:編譯不需要,在運行期有效,需要導(dǎo)入包中。(接口與實現(xiàn)分離)

test:測試需要,不會打入包中。

system:非本地倉庫引入、存在系統(tǒng)的某個路徑下的jar。(一般不使用) 

 

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2015-09-08 10:22:42

2022-08-23 08:53:31

Go項目語言

2024-04-07 00:00:05

事務(wù)Java開發(fā)

2021-10-15 10:26:56

代碼項目Mapper

2021-06-10 07:59:40

Linux 系統(tǒng)硬件操作系統(tǒng)

2019-10-18 15:16:10

Redis數(shù)據(jù)庫并發(fā)

2021-01-10 23:36:52

SQL數(shù)據(jù)庫技術(shù)

2017-05-17 17:23:00

2023-09-01 07:25:39

領(lǐng)域驅(qū)動設(shè)計DDD

2020-12-02 14:54:41

JavaScript開發(fā)技術(shù)

2024-11-21 15:44:21

2012-11-13 16:31:39

效率工作效率項目

2025-02-26 00:43:15

LINQC#工具

2020-12-18 08:59:51

蘋果iCloud儲存照片

2019-03-28 09:14:22

人工智能AI

2024-12-09 08:49:01

2022-05-16 07:48:54

Python操作類型

2018-04-03 14:49:24

2022-05-05 11:21:00

程序優(yōu)化

2020-08-17 09:31:31

Git命令開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

999日本视频| 久久久国产精品免费| 国产精品-区区久久久狼| 国产高清一区在线观看| 久久99热99| 久久久久国产精品免费| 中文字幕免费高清| 国产一区二区av在线| 午夜久久久久久久久| 日韩av不卡在线播放| a级片在线视频| 久久久精品五月天| 久久国产天堂福利天堂| 久久精品成人av| 欧美一级大片在线视频| 在线中文字幕不卡| 精品国偷自产一区二区三区| av在线二区| 99久久综合精品| 成人激情视频在线播放| 国产又粗又爽视频| 激情久久久久久久| 久久精品夜夜夜夜夜久久| 亚洲国产欧美视频| 亚洲日本视频在线| 国产三级一区| 国产很黄免费观看久久| 国产成人综合精品| 日本三级理论片| 无码一区二区三区视频| 亚洲欧洲一区二区三区久久| 国产av一区二区三区传媒| 精品裸体bbb| 日韩欧美在线中文字幕| 欧美这里只有精品| a级影片在线| 中文字幕一区二区三区av| 九九九九九精品| 蜜桃在线一区二区| 国产成人av影院| 91网站在线看| 国产又粗又猛又黄又爽无遮挡| 久久精品免费| 欧美在线视频导航| 中日韩黄色大片| 亚洲网站啪啪| 国内精品久久久久影院优| 劲爆欧美第一页| 欧美福利网址| 色综合男人天堂| 欧美成人一区二区三区高清| 亚洲欧洲美洲一区二区三区| 久久精品一本久久99精品| 永久免费看片直接| 亚洲mv大片欧洲mv大片| 久久人人爽亚洲精品天堂| 国精产品久拍自产在线网站| 日韩精品一区二区久久| 国产亚洲在线播放| 日韩欧美黄色网址| 日韩精品免费| 久久99国产综合精品女同| 欧美高清视频一区二区三区| 国内精品亚洲| 97精品在线观看| 黄色在线视频网址| 日韩影院精彩在线| 国产日韩欧美91| 国产三区在线播放| 成人国产精品免费| 日本欧美在线看| 欧美中文字幕在线观看| 日本久久综合网| 美女看a上一区| 亚洲综合在线做性| 深夜福利视频网站| 久久久三级国产网站| 亚洲ai欧洲av| 在线看三级电影| 精品久久久久久久大神国产| 日韩黄色片视频| 国产成人福利夜色影视| 欧美一区二区在线看| 涩视频在线观看| 一区二区三区韩国免费中文网站| 一区二区三区无码高清视频| www.97视频| 亚洲伦伦在线| 亚洲欧美中文另类| 黄视频网站免费看| 亚洲深夜福利| 91精品美女在线| 日韩一级在线播放| 国产欧美日韩亚州综合| 久久免费一级片| 亚洲成人不卡| 精品免费国产一区二区三区四区| 30一40一50老女人毛片| 国产高清欧美| 2019中文字幕在线| 亚洲天堂免费av| 国产成a人亚洲| 日韩影院一区| 国产理论在线| 69久久99精品久久久久婷婷| 免费中文字幕av| 91精品国产成人观看| 91精品国产沙发| 国产免费无遮挡| 久久精品视频一区二区| 国产xxxx振车| 免费视频观看成人| 精品香蕉在线观看视频一| 丰满少妇被猛烈进入一区二区| 亚洲一区二区三区免费在线观看 | 色综合久久88| 妺妺窝人体色www聚色窝仙踪| 午夜亚洲激情| eeuss一区二区三区| 69xxxx欧美| 狠狠色香婷婷久久亚洲精品| 中文字幕久久久久久久| 热久久天天拍国产| 茄子视频成人在线| 四虎免费在线观看| 亚洲午夜免费电影| 久久久久久国产精品日本| 日韩精品dvd| 国产精品国模在线| 欧美成人免费| 亚洲超碰97人人做人人爱| 中文字幕资源在线观看| 成人免费看片39| 国产成人精品久久久| 天天摸天天干天天操| 亚洲一区二区三区在线看| 肉色超薄丝袜脚交| 91亚洲国产成人久久精品| 国产精品九九久久久久久久| 三级无遮挡在线观看| 精品久久久久久久久久国产 | 懂色av蜜臀av粉嫩av喷吹| 97精品久久久午夜一区二区三区| 国产在线视频综合| 欧美影院精品| 欧美人成在线视频| 国产99视频在线| 亚洲精品免费视频| 日韩久久久久久久久久久| 香蕉精品视频在线观看| 国产欧美精品在线| 欧美13一16娇小xxxx| 777久久久精品| 裸体武打性艳史| 国产精品综合在线视频| 国产日韩欧美大片| 91精品入口| 久久久久中文字幕| 污视频在线免费观看| 精品国产91久久久久久老师| 香港三级日本三级| 丝袜诱惑制服诱惑色一区在线观看 | 久久99精品久久久久久秒播放器| 爆操欧美美女| 欧美成人vr18sexvr| 国产精品成人国产乱| 成人黄色在线网站| 黄www在线观看| 国产va免费精品观看精品视频| 国产ts人妖一区二区三区| 玖玖综合伊人| 欧美高清视频一二三区 | 成人日批视频| 亚洲成人久久一区| 黄色一级视频免费看| 国产精品久久久久久一区二区三区 | 丝袜美腿亚洲一区| 亚洲高清精品中出| 亚洲国产精品免费视频| 91国语精品自产拍在线观看性色 | 国产又粗又猛又黄又爽| 亚洲一区二区av在线| 成人免费毛片日本片视频| 人人爽香蕉精品| 精品人妻人人做人人爽| 久久av电影| 97se亚洲综合| 大胆人体一区二区| 欧美巨大黑人极品精男| 青青草在线免费观看| 欧美精选在线播放| 羞羞影院体验区| 亚洲天堂成人网| 国产亚洲色婷婷久久99精品91| 免费人成网站在线观看欧美高清| 日本丰满大乳奶| 美女少妇全过程你懂的久久| 国产男人精品视频| 麻豆免费版在线观看| 日韩在线免费av| 天天综合天天色| 4438亚洲最大| 激情网站在线观看| 亚洲国产精品综合小说图片区| 性高潮久久久久久久| 国产精品 欧美精品| 欧美激情精品久久久久久小说| 欧美一区二区三区免费看| 日本一区网站| 美女视频亚洲色图| 91最新国产视频| 国产精品一区二区av影院萌芽| 久久伊人免费视频| 成人精品一区二区三区校园激情| 亚洲成人黄色在线| 国产精品视频一二区| 色噜噜狠狠色综合中国| 久久精品视频免费在线观看| 久久久影视传媒| 国产高清成人久久| 国产成人精品免费视频网站| 欧美日韩一区二区三区69堂| 国产日韩精品视频一区二区三区 | 国模精品视频| 欧美第一淫aaasss性| 里番在线观看网站| 色哟哟亚洲精品一区二区| 日本福利在线观看| 日韩久久免费电影| 婷婷五月综合激情| 亚洲精品xxxx| 婷婷五月综合久久中文字幕| 精品精品国产高清一毛片一天堂| 99国产精品一区二区三区| 欧美日韩中文字幕一区二区| 国产午夜无码视频在线观看| 欧美性xxxxx极品| 欧美一级视频免费观看| 亚洲福利一二三区| 日本特黄特色aaa大片免费| 洋洋av久久久久久久一区| 私库av在线播放| 亚洲精品视频观看| 久久99久久久| 亚洲国产一区二区视频| 久久精品免费av| 亚洲国产精品嫩草影院| 国产午夜精品无码| 午夜精品一区二区三区三上悠亚| 久久精品亚洲无码| 午夜日韩在线电影| www欧美在线| 91高清视频免费看| 中文字幕乱码中文字幕| 欧美精品色一区二区三区| 97超碰人人草| 日韩你懂的在线播放| 黄色aaa大片| 精品性高朝久久久久久久| 手机看片福利在线观看| 精品亚洲精品福利线在观看| 黄色小视频在线观看| 一区二区三区精品99久久| 最新电影电视剧在线观看免费观看| 在线国产精品播放| av免费网站在线观看| 国模视频一区二区三区| 一区二区三区短视频| 国产精品免费看久久久香蕉 | 亚洲欧美高清| 精品久久久久久久无码| 久久av资源站| 97中文字幕在线观看| 91麻豆蜜桃一区二区三区| www亚洲色图| 亚洲乱码中文字幕综合| 中日韩黄色大片| 欧美日韩视频专区在线播放| 国产99999| 亚洲欧美日韩图片| 国产激情在线| 91sa在线看| 日韩精品一级毛片在线播放| www日韩av| 国产成人av| 欧美 另类 交| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲一二三区av| 国产精品1区2区| 中文字幕第20页| 伊人性伊人情综合网| 亚洲欧美综合自拍| 欧美一区二区视频在线观看2022| 日本高清视频在线| 视频在线观看99| av影视在线| 国产日韩专区在线| 女仆av观看一区| av在线免费观看网站| 欧美日韩在线精品一区二区三区激情 | 销魂美女一区二区| 欧美一级理论片| 国产原创av在线| 欧美成人午夜激情在线| 唐人社导航福利精品| αv一区二区三区| 日韩啪啪电影网| 国产精品秘入口18禁麻豆免会员| 精品无人区卡一卡二卡三乱码免费卡| 日韩综合第一页| 亚洲天堂成人在线观看| www.久久网| 日韩电视剧免费观看网站| 国产精品刘玥久久一区| 国产精品444| 欧美一区二区三区红桃小说| 午夜探花在线观看| 琪琪一区二区三区| 日本少妇毛茸茸| 亚洲一区二区视频在线| 91精品视频免费在线观看| 亚洲性av在线| 亚洲优女在线| 国模精品娜娜一二三区| 欧美日韩一区二区三区四区在线观看| 自拍偷拍21p| 中文字幕免费不卡在线| 亚洲欧美日韩激情| 亚洲精品成人网| xxx.xxx欧美| 国产福利不卡| 亚洲一级二级| 久草免费资源站| 亚洲一区免费视频| www.我爱av| 欧美人与性动交| 欧美三级一区| 黄色成人在线免费观看| 国产精品自产自拍| 精品欧美一区二区久久久久 | 8x拔播拔播x8国产精品| 成人福利一区| 国产日韩亚洲欧美在线| 国产精品18久久久久久久久久久久| 日本在线一级片| 91精品国产欧美日韩| 无遮挡的视频在线观看 | 成人午夜网址| 国产二区视频在线| 99免费精品视频| 国产亚洲欧美在线精品| 亚洲男女自偷自拍图片另类| 亚洲精品动漫| 视频一区二区在线观看| 蜜臀久久久久久久| 日韩一区二区不卡视频| 欧美一区二区免费视频| 动漫一区二区| 久久精品国产理论片免费 | 国内av一区二区| 亚洲人成精品久久久久久| 精品久久无码中文字幕| 国内精品在线一区| 亚洲精品中文字幕99999| 日本免费观看网站| 自拍偷拍欧美激情| 国产自产一区二区| 欧美专区国产专区| 成人精品中文字幕| 日本人妻一区二区三区| 欧美日韩精品二区| a视频网址在线观看| 91视频8mav| 亚洲久久一区二区| 色欲狠狠躁天天躁无码中文字幕| 欧美日韩精品一区二区三区| 亚洲性图自拍| 欧美不卡三区| 精品一区二区三区视频| 国产无遮挡又黄又爽| 亚洲欧美国产精品专区久久| 日本午夜免费一区二区| 丁香六月激情婷婷| 日本一区二区免费在线观看视频| 国产免费视频一区二区三区| 午夜精品三级视频福利| 欧美少妇性xxxx| 少妇极品熟妇人妻无码| 91国产免费观看| 色呦呦呦在线观看| 日韩久久久久久久| 国产精品91xxx| 波多野结衣黄色| 久久久久久久久久久91| 欧美视频免费| 欧美熟妇精品黑人巨大一二三区| 欧美裸体一区二区三区| 欧美伦理91| 国产又粗又猛又爽又黄的网站 | 国产一区二区精彩视频|