Maven詳解

Maven用了半年多了,現(xiàn)在基本的使用已經(jīng)可以了巾遭,在這里進行一個總結,加深印象灼舍,同時幫助小白快速上手Maven

一涨薪、什么是Maven?
Maven是一個項目構建工具刚夺,能把項目抽象成一個POM(project object model),使用POM文件對項目進行構建侠姑、打包、文檔化等操作筐摘。最重要的是解決了項目依賴的問題船老,簡化項目環(huán)境搭建的過程;

二柳畔、為什么用Maven?
Maven最核心的功能:解決復雜項目依賴的問題确沸。怎么說?比如說你在項目中需要用到第三方jar包(如Mysql驅動)罗捎,去哪找呢。如果一個還好桨菜,到一個復雜的項目通常由幾十甚至上百個依賴組成,一個一個找怕不是累死泻红?而Maven就解決了這個問題,比如Mysql驅動谊路,只需要加入下面這一句即可:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>

是不是很方便菩彬?

另一方面,項目的測試骗灶、打包、部署等操作矿卑,Maven也進行了簡化沃饶,同時對項目的結構有了統(tǒng)一的規(guī)范和約定,如源碼統(tǒng)一存放在src/main/java下琴昆,測試代碼統(tǒng)一存放在src/test/java下馆揉,資源文件統(tǒng)一存放在src/resources下,編譯后字節(jié)碼存放在target目錄下等等升酣。

一句話,Maven讓技術人員能夠專注在業(yè)務邏輯上噩茄,極大提高了開發(fā)效率;

三沥割、我的jar都是哪來的凿菩?
依賴倉庫有多種,位于Apache的中心倉庫http://mvnrepository.com/衅谷,柜內(nèi)外也有大量鏡像庫,如阿里云的Maven倉庫会喝,會與中心倉庫進行同步玩郊;同時可以創(chuàng)建公司私庫译红,用來發(fā)布和存放庫以提高下載速度或存放公司私有的jar便于統(tǒng)一管理;

無論依賴的jar來自哪個倉庫侦厚,在開發(fā)人員本地拙徽,Maven都會創(chuàng)建一個本地倉庫用于緩存已經(jīng)下載的jar,避免每次從倉庫下載想诅,默認地址為用戶文件夾下的.m2隱藏文件夾中。

四来破、Maven配置
Maven最核心的是pom.xml忘古,使用xml方式描述項目模型,pom通常有以下元素:

groupId:表示項目所屬的組髓堪,通常是一個公司或組織的名稱,如:org.springframework驶沼;
artifactId:項目唯一標識疤孕,如mysql-connector-java;
packaging:項目打包方式鹉戚,通常有war和jar兩種;
version:項目版本號专控;


注:
通常來說,項目版本號分為三段赢底,主版本號.次版本號.修訂版本號。主版本號變動代表架構變動或不兼容實現(xiàn)幸冻,次版本號是兼容性修改、功能增強庞溜,修訂版本號則是bug修復碑定。版本后綴意味著不同的項目階段,SNAPSHOT表示正在開發(fā)中的版本延刘,會修復bug和添加新的功能;RELEASE表示一個正式的版本碘赖,中間可能還有M1,M2(M代表里程碑秘车,即將發(fā)布)劫哼、RC(Release Candidate割笙,發(fā)布候選)、GA(General Availiable般码,基本可用版本)等表示即將發(fā)布前的各個過程乱顾。SNAPSHOT<M1<M2<...<RC<GA<RELEASE


modelVersion:pom的Maven版本,目前是4.0.0走净;
dependencies:此元素下包含多個dependency,用來聲明項目依賴橘洞,是pom中最核心的部分说搅;
dependency:包含在dependencies中,用來聲明項目依賴

dependency所包含的元素如下:


groupId、artifactId霍衫、version這三個與上面描述相同侯养,不再贅述;
scope:代表此類庫與本項目的關系沸毁,默認是compile,也就是編譯打包都需要此類庫携兵;test表示盡僅在單元測試的時候需要;provided表示編譯階段需要此類庫搂誉,帶打包階段不需要徐紧,因為項目環(huán)境中已經(jīng)提供了;runtime表示編譯和打包的時候都不需要炭懊,但運行的時候需要并级,如mysql驅動包;
optional:true/false侮腹,默認false嘲碧,激活時代表該依賴僅在本項目中使用,子項目需要時需要重新寫入該依賴父阻;


bulid:此項在pom中可選糕再,bulid包含了多個插件plugin用來輔助項目構建所森。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
早期Maven默認的Java版本是1.6盔粹,此處顯式聲明使用Java1.8編譯儡羔,源代碼使用的是UTF-8

五、其他:
關于Maven的安裝斟览、環(huán)境變量配置、阿里云鏡像切換苛茂,IDE集成網(wǎng)上有很多資源妓羊,這里不再贅述侍瑟;

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茧球,隨后出現(xiàn)的幾起案子星持,更是在濱河造成了極大的恐慌督暂,老刑警劉巖逻翁,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酷愧,死亡現(xiàn)場離奇詭異溶浴,居然都是意外死亡士败,警方通過查閱死者的電腦和手機褥伴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伤锚,“玉大人志衣,你說我怎么就攤上這事念脯÷痰辏” “怎么了庐橙?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浆竭。 經(jīng)常有香客問我邦泄,道長裂垦,這世上最難降的妖魔是什么缸废? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任测萎,我火速辦了婚禮硅瞧,結果婚禮上恕汇,老公的妹妹穿的比我還像新娘。我一直安慰自己枣接,他們只是感情好但惶,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阳啥,像睡著了一般察迟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祝高,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天工闺,我揣著相機與錄音陆蟆,去河邊找鬼叠殷。 笑死林束,一個胖子當著我的面吹牛壶冒,可吹牛的內(nèi)容都是我干的胖腾。 我是一名探鬼主播瘪松,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼记罚,長吁一口氣:“原來是場噩夢啊……” “哼桐智!你這毒婦竟也來了?” 一聲冷哼從身側響起荐吉,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤穿撮,失蹤者是張志新(化名)和其女友劉穎悦穿,沒想到半個月后栗柒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了曙痘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片边坤。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡罢洲,死狀恐怖文黎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桩蓉,我是刑警寧澤院究,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站样漆,受9級特大地震影響晦闰,放射性物質發(fā)生泄漏。R本人自食惡果不足惜鞋喇,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鄙皇。 院中可真熱鬧伴逸,春花似錦错蝴、人聲如沸颓芭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毁涉。三九已至贫堰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缨该,已是汗流浹背睦优。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隐孽,地道東北人菱阵。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像虑稼,于是被迫代替她去往敵國和親蛛倦。 傳聞我的和親對象是個殘疾皇子溯壶,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容