舉例講解Maven的使用及生命周期
通過實際對maven進行操作講解maven的使用
maven安裝
maven官方下載地址
http://maven.apache.org/download.cgi
配置環(huán)境變量
==注意:安裝maven之前,必須先確保你的機器中已經(jīng)安裝了JDK它掂,否則無法編譯==
- 解壓下載的壓縮包
- 添加環(huán)境變量MAVEN_HOME虐秋,值為解壓后的文件夾的路徑垃沦,例如放在D盤(新裝的時候應(yīng)該是新建肢簿,我這里已經(jīng)裝好池充,只是為了舉例),如圖所示:
- 在Path環(huán)境變量的變量值末尾添加
%MAVEN_HOME%\bin
- 在cmd輸入
mvn –version
如果出現(xiàn)maven和jdk的版本信息坑匠,說明配置成功,如下圖:
啟用代理訪問
依據(jù)自身網(wǎng)絡(luò)環(huán)境決定是否添加代理,如果需要添加咽瓷,在 Maven 的配置文件中設(shè)置代理服務(wù)器:{MAVEN_HOME}/conf/settings.xml茅姜,找到下面這段,改成你的代理服務(wù)器奋姿。
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
--></proxies>
把注釋去掉胀蛮,host這里填寫代理服務(wù)器的地址(可以用IP)以及port端口粪狼,如果需要用戶名/密碼認(rèn)證任岸,則填寫username/password節(jié)點享潜,否則username/password這二個節(jié)點去掉,nonProxyHosts表示某些地址不需要經(jīng)過代理服務(wù)器疾就,多個地址之間用|分隔,支持通配符鸟废,比如172.156.*
本地倉庫配置
從中央倉庫下載的jar包盒延,都會統(tǒng)一存放到本地倉庫中鼠冕。我們需要配置本地倉庫的位置懈费。默認(rèn)是在c盤的用戶下楞捂,但一般我們都不用這個地址。
打開{MAVEN_HOME}/conf/settings.xml胶坠,修改倉庫地址:
<localRepository>D:\maven\m2\repository</localRepository>
可以修改成這樣沈善,便于識別就好椭蹄。
使用命令行創(chuàng)建基本 java Maven項目
在創(chuàng)建之前先了解一下Maven的版本規(guī)范绳矩,對創(chuàng)建項目也是有幫助的翼馆,創(chuàng)建項目是會用得到。
maven使用如下幾個要素來唯一定位某一個輸出物:
groudId:
團體严沥、組織的標(biāo)識符中姜。團體標(biāo)識的約定是,它以創(chuàng)建這個項目的組織名稱的逆向域名(reverse domain name)開頭。一般對應(yīng)著JAVA的包的結(jié)構(gòu)翩瓜。例如org.apache
artifactId:
單獨項目的唯一標(biāo)識符受扳。也可以理解為項目名稱。比如我們的tomcat, commons等奥溺。不要在artifactId中包含點號(.)辞色。
version:
一個項目的特定版本骨宠。
packaging:
項目的類型浮定,默認(rèn)是jar,描述了項目打包后的輸出层亿。類型為jar的項目產(chǎn)生一個JAR文件,類型為war的項目產(chǎn)生一個web應(yīng)用匿又。
maven有自己的版本規(guī)范方灾,一般是如下定義 <major version>.<minor version>.<incremental version>-<qualifier> ,比如1.2.3-beta-01碌更。要說明的是裕偿,maven自己判斷版本的算法是major,minor,incremental部分用數(shù)字比較,qualifier部分用字符串比較痛单,所以要小心 alpha-2和alpha-15的比較關(guān)系嘿棘,最好用 alpha-02的格式。
maven在版本管理時候可以使用幾個特殊的字符串 SNAPSHOT旭绒,LATEST鸟妙,RELEASE。比如"1.0-SNAPSHOT"挥吵。各個部分的含義和處理邏輯如下說明:
SNAPSHOT
這個版本一般用于開發(fā)過程中重父,表示不穩(wěn)定的版本。
LATEST
指某個特定構(gòu)件的最新發(fā)布忽匈,這個發(fā)布可能是一個發(fā)布版房午,也可能是一個snapshot版,具體看哪個時間最后丹允。
RELEASE
指最后一個發(fā)布版郭厌。
創(chuàng)建Maven項目(第一種)
- 先創(chuàng)建項目的根目錄,比如F:\mvnTest嫌松,命令行窗口下輸入下面兩個命令:
cd /d F:\mvnTest
mvn archetype:generate
- 這里會執(zhí)行一會沪曙,從網(wǎng)絡(luò)獲取項目模板列表,等到如下圖萎羔,直接回車液走,
-
出現(xiàn)下圖,繼續(xù)回車,
mvn 選擇版本2 出現(xiàn)下圖缘眶,填寫項目基本信息嘱根,如下圖,
- 確認(rèn)這些信息之后巷懈,出現(xiàn)下圖就表示項目創(chuàng)建成功,如下圖该抒,
6.項目創(chuàng)建成功后,觀察工程結(jié)構(gòu)顶燕,這個生成項目就是標(biāo)準(zhǔn)的maven 項目凑保。
這是全世界maven項目的通用約定,請記住這些固定的目錄結(jié)構(gòu)涌攻。
創(chuàng)建Maven項目(第二種)
使用命令:
mvn archetype:generate -DgroupId=pertrochina.xjyt -DartifactId=mvnTest2 -DinteractiveMode=false
編譯項目
先進入剛才創(chuàng)建項目的根目錄:
cd /d F:\mvnTest\mvnTest
mvn clean compile
或者mvn compile
進行編譯欧引,如下圖顯示,成功編譯恳谎。
單元測試
使用命令:mvn clean test
或者mvn test
如果單元測試不通過芝此,會提示出錯信息,注意看輸出因痛。
==注:從輸出上可以發(fā)現(xiàn)婚苹,test前,會先執(zhí)行compile鸵膏,即先編譯膊升,再執(zhí)行單元測試.==
項目打包
通常我們會把java項目打包成jar包或war包,maven中打包的命令為
mvn clean package
或者mvn package
運行完后较性,會在target目錄下生成jar包
==注:從輸出 可以發(fā)現(xiàn)用僧,package前,會先執(zhí)行compile赞咙,再執(zhí)行test责循,最后才是package打包.==
項目運行
進入F:\mvnTest\mvntest\target\classes,運行下面的命令:
java pertrochina.xjyt.App
在這里java項目就可以使用了攀操。需要什么就添加就可以了院仿。