本文內容主要參考
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
1.安裝
下載Maven.目前的版本是2.0.4
http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-2.0.4-bin.zip
解壓縮后,設置環境變量M2_HOME到maven目錄;在環境變量path中增加maven的bin目錄。
在命令行輸入
Mvn -version
顯示
Maven version: 2.0.4
則安裝成功。
2. 網絡設置
maven運行時需要網絡環境。如果你的網絡需要代理,則要在maven目錄的conf/settings.xml中設置。
找到<proxies>節點,按照例子,根據自己實際環境設置。
3.體驗maven
在命令行中,進入你常用的項目文件夾,輸入
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
如果網絡配置正確,maven就會下載需要的文件,執行任務,最終顯示“BUILD SUCCESSFUL”,并生成my-app目錄。
讓我們看一下mvn對項目目錄的組織:
My-app
├─pom.xml
└─src
├─main
│ └─java
│ └─com
│ └─mycompany
│ └─app
│ └─App.java
└─test
└─java
└─com
└─mycompany
└─app
└─AppTest.java
可以看出,代碼和測試代碼分別放在main及test文件夾下。
Pom.xml描述項目對象模型(Project Object Model)。其模式文件為http://maven.apache.org/xsd/maven-4.0.0.xsd
詳細的POM說明請參考相關資料。
4.maven命令
在命令行下輸入mvn -h , 顯示mvn幫助,其中usage: mvn [options] [<goal(s)>] [<phase(s)>]表明了mvn命令的構成。
Options:可選的參數。比如前面提到的-version , -h等。
Goal(s): 表示maven構建的“目標”。比如前面的
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
其中archetype:create表示archetype插件下的create目標。這里,插件是為了某種目的構建的目標的集合,maven通過插件擴展其功能。
還可以為目標傳遞一些參數,比如上面的“-DgroupId=com.mycompany.app -DartifactId=my-app”。
Phase(s):階段。表示maven構建生命周期 中的一個步驟。使用相位命令時,maven會執行生命周期中該階段之前的所有命令,使項目處于指定的“狀態”。
比如在剛才創建的項目路徑下輸入mvn compile,會創建target文件夾,并編譯class,使項目處于“已編譯”狀態。
- maven定義的生命周期中主要的相位如下:
- validate: 驗證項目是否正確以及相關信息是否可用。
- compile: 編譯。
- test: 通過junit進行單元測試。
- package: 根據事先指定的格式(比如jar),進行打包。
- integration-test: 部署到運行環境中,準備進行集成測試。
- verify: 對包進行有效性性和質量檢查。
- install: 安裝到本地代碼庫。
- deploy: 在集成或發布環境,將包發布到遠程代碼庫。
在“默認”的生命周期之外,還有兩個“階段”:
- clean: 清除以前的構建物。
- site: 生成項目文檔。
階段實際上是通過目標的組合實現的。
5.組合命令
可以通過對目標及相位的組合使得一個命令完成多個功能,比如:
mvn clean dependency:copy-dependencies package
相當于按順序執行
mvn clean
mvn dependency:copy-dependencies
mvn package
到這里,對maven應該有一個初步的印象并能上手使用了吧?更多的內容可以查閱相關的文檔。