小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

我們?yōu)槭裁匆肕aven

 春和秋榮 2019-05-14
                 最近有不少開發(fā)者向我反饋,現(xiàn)在做新的項(xiàng)目,需要用到maven工具,自己又沒有這方面的知識(shí),所以我將在這里分享一起maven相關(guān)的資料,供大家參考,希望能幫到有需要的朋友。Maven是什么我就不講了,大家可以到百度上去搜索。
 
現(xiàn)在生產(chǎn)環(huán)境上開發(fā)的項(xiàng)目,不再是一個(gè)項(xiàng)目一個(gè)工程,而是每個(gè)模塊創(chuàng)建一個(gè)工程,而多個(gè)模塊整合在一起就需要使用到像Maven這樣的構(gòu)建工具。


真的需要嗎?
Maven是干什么用的?這是很多開發(fā)者在剛開始接觸Maven時(shí)最大的問題。之所以會(huì)提出這個(gè)問題,是因?yàn)榧词共皇褂肕aven 我們?nèi)匀豢梢赃M(jìn)行B/S結(jié)構(gòu)項(xiàng)目的開發(fā),從表現(xiàn)層,業(yè)務(wù)邏輯層到持久化層再到數(shù)據(jù)庫(kù)都有成熟的解決方案——不使用Maven我們一樣可以開發(fā)項(xiàng)目???
 


 這里給大家糾正一個(gè)誤區(qū),Maven并不是直接用來輔助編碼的,它戰(zhàn)斗的崗位并不是以上各層。所以我們有必要通過企業(yè)開發(fā)中的實(shí)際需求來看一看哪些方面是我們現(xiàn)有技術(shù)的不足。


 1.2 究竟為什么?
為什么要使用Maven?它能幫助我們解決什么問題?


 ①添加第三方j(luò)ar包
在今天的JavaEE開發(fā)領(lǐng)域,有大量的第三方框架和工具可以供我們使用。要使用這些jar包最簡(jiǎn)單的方法就是復(fù)制粘貼到WEB-INF/lib目錄下。但是這會(huì)導(dǎo)致每次創(chuàng)建一個(gè)新的工程就需要將jar包重復(fù)復(fù)制到lib目錄下,從而造成工作區(qū)中存在大量重復(fù)的文件,讓我們的工程顯得很臃腫。
而使用Maven后每個(gè)jar包本身只在本地倉(cāng)庫(kù)中保存一份,需要jar包的工程只需要以坐標(biāo)的方式簡(jiǎn)單的引用一下就可以了。不僅極大的節(jié)約了存儲(chǔ)空間,讓項(xiàng)目更輕巧,更避免了重復(fù)文件太多而造成的混亂。
②jar包之間的依賴關(guān)系
  jar包往往不是孤立存在的,很多jar包都需要在其他jar包的支持下才能夠正常工作,我們稱之為jar包之間的依賴關(guān)系。最典型的例子是:commons-fileupload-1.3.jar依賴于commons-io-2.0.1.jar,如果沒有IO包,F(xiàn)ileUpload包就不能正常工作。相信很多開發(fā)著在沒有使用Maven前,為解決這些包沖突而頭痛。
那么問題來了,你知道你所使用的所有jar包的依賴關(guān)系嗎?當(dāng)你拿到一個(gè)新的從未使用過的jar包,你如何得知他需要哪些jar包的支持呢?如果不了解這個(gè)情況,導(dǎo)入的jar包不夠,那么現(xiàn)有的程序?qū)⒉荒苷9ぷ?。再進(jìn)一步,當(dāng)你的項(xiàng)目中需要用到上百個(gè)jar包時(shí),你還會(huì)人為的,手工的逐一確認(rèn)它們依賴的其他jar包嗎?這簡(jiǎn)直是不可想象的。
而引入Maven后,Maven就可以替我們自動(dòng)的將當(dāng)前jar包所依賴的其他所有jar包全部導(dǎo)入進(jìn)來,無需人工參與,節(jié)約了我們大量的時(shí)間和精力。用實(shí)際例子來說明就是:通過Maven導(dǎo)入commons-fileupload-1.3.jar后,commons-io-2.0.1.jar會(huì)被自動(dòng)導(dǎo)入,程序員不必了解這個(gè)依賴關(guān)系。
下圖是Spring所需jar包的部分依賴關(guān)系
 
③獲取第三方j(luò)ar包
JavaEE開發(fā)中需要使用到的jar包種類繁多,幾乎每個(gè)jar包在其本身的官網(wǎng)上的獲取方式都不盡相同。為了查找一個(gè)jar包找遍互聯(lián)網(wǎng),身心俱疲,沒有經(jīng)歷過的人或許體會(huì)不到這種折磨。不僅如此,費(fèi)勁心血找的jar包里有的時(shí)候并沒有你需要的那個(gè)類,又或者又同名的類沒有你要的方法——以不規(guī)范的方式獲取的jar包也往往是不規(guī)范的。
使用Maven我們可以享受到一個(gè)完全統(tǒng)一規(guī)范的jar包管理體系。你只需要在你的項(xiàng)目中以坐標(biāo)的方式依賴一個(gè)jar包,Maven就會(huì)自動(dòng)從中央倉(cāng)庫(kù)進(jìn)行下載,并同時(shí)下載這個(gè)jar包所依賴的其他jar包
——規(guī)范、完整、準(zhǔn)確!一次性解決所有問題!
Tips:在這里我們順便說一下,統(tǒng)一的規(guī)范幾乎可以說成是程序員的最高信仰。如果沒有統(tǒng)一的規(guī)范,就意味著每個(gè)具體的技術(shù)都各自為政,需要以諸多不同的特殊的方式加入到項(xiàng)目中;好不容易加入進(jìn)來還會(huì)和其他技術(shù)格格不入,最終受苦的是我們。而任何一個(gè)領(lǐng)域的統(tǒng)一規(guī)范都能夠極大的降低程序員的工作難度,減少工作量。例如:USB接口可以外接各種設(shè)備,如果每個(gè)設(shè)備都有自己獨(dú)特的接口,那么不僅制造商需要維護(hù)各個(gè)接口的設(shè)計(jì)方案,使用者也需要詳細(xì)了解每個(gè)設(shè)備對(duì)應(yīng)的接口,無疑是非常繁瑣的。
④將項(xiàng)目拆分成多個(gè)工程模塊
隨著JavaEE項(xiàng)目的規(guī)模越來越龐大,開發(fā)團(tuán)隊(duì)的規(guī)模也與日俱增。一個(gè)項(xiàng)目上千人的團(tuán)隊(duì)持續(xù)開發(fā)很多年對(duì)于JavaEE項(xiàng)目來說再正常不過。那么我們想象一下:幾百上千的人開發(fā)的項(xiàng)目是同一個(gè)Web工程。那么架構(gòu)師、項(xiàng)目經(jīng)理該如何劃分項(xiàng)目的模塊、如何分工呢?這么大的項(xiàng)目已經(jīng)不可能通過package結(jié)構(gòu)來劃分模塊,必須將項(xiàng)目拆分成多個(gè)工程協(xié)同開發(fā)。多個(gè)模塊工程中有的是Java工程,有的是Web工程。
那么工程拆分后又如何進(jìn)行互相調(diào)用和訪問呢?這就需要用到Maven的依賴管理機(jī)制。大家請(qǐng)看我們的Survey調(diào)查項(xiàng)目拆分的情況:
 
上層模塊依賴下層,所以下層模塊中定義的API都可以為上層所調(diào)用和訪問。            

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多