Maven項目對象模型(POM)苟翻,可以通過一小段描述信息來管理項目的構(gòu)建伯病,報告和文檔的軟件項目管理工具斥季。
Maven 除了以程序構(gòu)建能力為特色之外减余,還提供高級項目管理工具。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性府怯,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡單的項目刻诊。由于 Maven 的面向項目的方法,許多 Apache Jakarta 項目發(fā)文時使用 Maven牺丙,而且公司項目采用 Maven 的比例在持續(xù)增長则涯。
Maven這個單詞來自于意第緒語(猶太語),意為知識的積累赘被,最初在Jakata Turbine項目中用來簡化構(gòu)建過程是整。當(dāng)時有一些項目(有各自Ant build文件),僅有細微的差別民假,而JAR文件都由CVS來維護。于是希望有一種標(biāo)準(zhǔn)化的方式構(gòu)建項目龙优,一個清晰的方式定義項目的組成羊异,一個容易的方式發(fā)布項目的信息事秀,以及一種簡單的方式在多個項目中共享JARs。
常用命令
mvn archetype:generate 創(chuàng)建Maven項目
mvn compile 編譯源代碼
mvn deploy 發(fā)布項目
mvn test-compile 編譯測試源代碼
mvn test 運行應(yīng)用程序中的單元測試
mvn site 生成項目相關(guān)信息的網(wǎng)站
mvn clean 清除項目目錄中的生成結(jié)果
mvn package 根據(jù)項目生成的jar
mvn install 在本地Repository中安裝jar
mvn eclipse:eclipse 生成eclipse項目文件
mvnjetty:run 啟動jetty服務(wù)
mvntomcat:run 啟動tomcat服務(wù)
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包野舶,跳過測試類
Win7配置
首先要安裝Jdk1.6 和Myeclipse7.5 易迹。
1. Maven有一個重要的文件"settings.xml“,這個文件來源于apache-maven-2.0.8/conf/ 下平道,要放在window下睹欲, Win7和Winxp還是有點不一樣 , Win7 ---C:\Users\用戶名\.m2 一屋, Winxp ---C:\Documents and Settings\用戶名\.m2 窘疮。
2. 設(shè)置Maven的環(huán)境變量,基本上和設(shè)置Jdk環(huán)境變量相似冀墨,首先設(shè)置MAVEN_HOME闸衫,再加入Path 。
3. 修改”settings.xml” 文件诽嘉,在這個文件中找到d:/work這一行蔚出,進行修改。這一行代表了Maven的Jar包倉庫的位置虫腋。work下放的都是項目所用到的jar包骄酗,每個Project都可以共用一個work。
4. Myeclipse7.5及以上版本本身自帶Maven插件悦冀。如果使用低版本的Myeclipse需要安裝插件趋翻,在help菜單中選擇software updates,選擇find and install雏门,選擇search for new features to install-選擇new remote site嘿歌。寫入 name:maven URL:http:// m2eclipse.codehaus . org/update/去下載相關(guān)jar包和插件。
5. 在Myeclipse中windows-perferences中茁影,在下圖的位置上宙帝,查看users settings的路徑是否正確。
6. 建立Maven的project募闲,F(xiàn)ile--new—other—Java Maven Project步脓。
7. 然后打開project里pom.xml文件,
在這xml文件中添加Maven所依賴的Jar的名稱浩螺,也就是添加節(jié)點靴患。
例如:添加大家常用的Struts Jar包
8. 到發(fā)文時為止,環(huán)境就算搞定了要出。接下來要應(yīng)用Maven來打包Project為大家服務(wù)的鸳君。
在cmd中的命令:
a. mvn eclipse:clean 清除Project中以前的編譯的東西,重新再來
b. mvn eclipse:eclipse 開始編譯Maven的Project
在Myeclipse中的操作:
a. 選中Maven Project 右擊 在Run As中選擇Maven clean
b. 在Myeclipse中患蹂,Project—Clean 開始編譯
c. 選中Maven Project 右擊 在Run As中選擇Maven install
執(zhí)行完這幾步或颊,如果沒發(fā)生異常砸紊,會在project里生成一個target文件夾,這個文件夾里的東西囱挑,就是Maven打包發(fā)布的東西醉顽。
生命周期
Maven的生命周期是為了對所有的構(gòu)建過程進行了抽象了,便于統(tǒng)一平挑。
clean(清理)
cleanup(清理所有)
此生命周期旨在給工程做清理工作游添,它主要包含以下階段:
pre-clean- 執(zhí)行項目清理前所需要的工作。
clean- 清理上一次build項目生成的文件通熄。
post-clean- 執(zhí)行完成項目清理所需的工作.
default(默認(rèn))
validate- 驗證項目是否正確且所有必要的信息都可用唆涝。
initialize- 初始化構(gòu)建工作,如:設(shè)置參數(shù)棠隐,創(chuàng)建目錄等石抡。
generate-sources- 為包含在編譯范圍內(nèi)的代碼生成源代碼.
process-sources- 處理源代碼, 如過濾值.
generate-resources-
process-resources- 復(fù)制并處理資源文件,至目標(biāo)目錄助泽,準(zhǔn)備打包啰扛。
compile- 編譯項目中的源代碼.
process-classes- 為編譯生成的文件做后期工作, 例如做Java類的字節(jié)碼增強.
generate-test-sources- 為編譯內(nèi)容生成測試源代碼.
process-test-sources- 處理測試源代碼。
generate-test-resources-
process-test-resources- 復(fù)制并處理資源文件嗡贺,至目標(biāo)測試目錄隐解。
test-compile- 將需測試源代碼編譯到路徑。一般來說诫睬,是編譯/src/test/java目錄下的java文件至目標(biāo)輸出的測試classpath目錄中煞茫。
process-test-classes-
test- 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署摄凡。
prepare-package-
package- 接受編譯好的代碼续徽,打包成可發(fā)布的格式,如 JAR 亲澡。
pre-integration-test-
integration-test- 按需求將發(fā)布包部署到運行環(huán)境钦扭。
post-integration-test-
verify-
install-將包安裝到本地倉庫,給其他本地引用提供依賴床绪。
deploy-完成集成和發(fā)布工作客情,將最終包復(fù)制到遠程倉庫以便分享給其他開發(fā)人員。
site(站點)
pre-site- 執(zhí)行一些生成項目站點前的準(zhǔn)備工作癞己。
site- 生成項目站點的文檔膀斋。
post-site- 執(zhí)行需完成站點生成的工作,如站點部署的準(zhǔn)備工作痹雅。
site-deploy- 向制定的web服務(wù)器部署站點生成文件仰担。[2]
鏡像倉庫
本地倉庫
Maven默認(rèn)位置在用戶目錄下.m2目錄中
更改本地倉庫位置
打開setting.xml
找到
復(fù)制setting.xml到 repo中防止MAVEN更新 需要從新修改