Apache Maven是一個(gè)軟件項(xiàng)目管理和理解工具?;陧?xiàng)目對(duì)象模型(POM)的概念,Maven可以從一個(gè)中心信息管理項(xiàng)目的構(gòu)建,報(bào)告和文檔。
Maven優(yōu)點(diǎn):
- 約定優(yōu)于配置
- 測(cè)試支持
- 構(gòu)建簡(jiǎn)單
- 插件豐富
Maven常用命令:
1. 創(chuàng)建Maven的普通Java項(xiàng)目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
2. 創(chuàng)建Maven的Web項(xiàng)目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
3. 編譯源代碼: mvn compile
4. 編譯測(cè)試代碼:mvn test-compile
5. 運(yùn)行測(cè)試:mvn test
6. 產(chǎn)生site:mvn site
7. 打包:mvn package
8. 在本地Repository中安裝jar:mvn install
9. 清除產(chǎn)生的項(xiàng)目:mvn clean
10. 生成eclipse項(xiàng)目:mvn eclipse:eclipse
11. 生成idea項(xiàng)目:mvn idea:idea
12. 組合使用goal命令,如只打包不測(cè)試:mvn -Dtest package
13. 編譯測(cè)試的內(nèi)容:mvn test-compile
14. 只打jar包: mvn jar:jar
15. 只測(cè)試而不編譯,也不測(cè)試編譯:mvn test -skipping compile -skipping test-compile
( -skipping 的靈活運(yùn)用,當(dāng)然也可以用于其他組合命令)
16. 清除eclipse的一些系統(tǒng)設(shè)置:mvn eclipse:clean
ps:
一般使用情況是這樣,首先通過(guò)cvs或svn下載代碼到本機(jī),然后執(zhí)行mvn eclipse:eclipse生成ecllipse項(xiàng)目文件,然后導(dǎo)入到eclipse就行了;修改代碼后執(zhí)行mvn compile或mvn test檢驗(yàn),也可以下載eclipse的maven插件。
mvn -version/-v 顯示版本信息
mvn archetype:generate 創(chuàng)建mvn項(xiàng)目
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app 創(chuàng)建mvn項(xiàng)目
mvn package 生成target目錄,編譯、測(cè)試代碼,生成測(cè)試報(bào)告,生成jar/war文件
mvn jetty:run 運(yùn)行項(xiàng)目于jetty上,
mvn compile 編譯
mvn test 編譯并測(cè)試
mvn clean 清空生成的文件
mvn site 生成項(xiàng)目相關(guān)信息的網(wǎng)站
mvn -Dwtpversion=1.0 eclipse:eclipse 生成Wtp插件的Web項(xiàng)目
mvn -Dwtpversion=1.0 eclipse:clean 清除Eclipse項(xiàng)目的配置信息(Web項(xiàng)目)
mvn -DskipTests,不執(zhí)行測(cè)試用例,但編譯測(cè)試用例類生成相應(yīng)的class文件至target/test-classes下。
mvn -Dmaven.test.skip=true,不執(zhí)行測(cè)試用例,也不編譯測(cè)試用例類。
mvn eclipse:eclipse 將項(xiàng)目轉(zhuǎn)化為Eclipse項(xiàng)目
在應(yīng)用程序用使用多個(gè)存儲(chǔ)庫(kù)
<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>
mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/
發(fā)布第三方Jar到本地庫(kù)中:
mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:client-0.1.0.jar
-DdownloadSources=true
-DdownloadJavadocs=true
mvn -e 顯示詳細(xì)錯(cuò)誤 信息.
mvn -U 強(qiáng)制更新依賴包
mvn -B 該參數(shù)表示讓Maven使用批處理模式構(gòu)建項(xiàng)目
mvn validate 驗(yàn)證工程是否正確,所有需要的資源是否可用。
mvn test-compile 編譯項(xiàng)目測(cè)試代碼。 。
mvn integration-test 在集成測(cè)試可以運(yùn)行的環(huán)境中處理和發(fā)布包。
mvn verify 運(yùn)行任何檢查,驗(yàn)證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn)。
mvn generate-sources 產(chǎn)生應(yīng)用需要的任何額外的源代碼,如xdoclet。
常用命令總結(jié):
mvn -v 顯示版本
mvn help:describe -Dplugin=help 使用 help 插件的 describe 目標(biāo)來(lái)輸出 Maven Help 插件的信息。
mvn help:describe -Dplugin=help -Dfull 使用Help 插件輸出完整的帶有參數(shù)的目標(biāo)列
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 獲取單個(gè)目標(biāo)的信息,設(shè)置 mojo 參數(shù)和 plugin 參數(shù)。此命令列出了Compiler 插件的compile 目標(biāo)的所有信息
mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目標(biāo)
mvn help:effective-pom 看這個(gè)“有效的 (effective)”POM,它暴露了 Maven的默認(rèn)設(shè)置
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook 創(chuàng)建Maven的普通java項(xiàng)目,在命令行使用Maven Archetype 插件
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件讓我們能夠在不往 classpath 載入適當(dāng)?shù)囊蕾嚨那闆r下,運(yùn)行這個(gè)程序
mvn dependency:resolve 打印出已解決依賴的列表
mvn dependency:tree 打印整個(gè)依賴樹
mvn install -X 想要查看完整的依賴蹤跡,包含那些因?yàn)闆_突或者其它原因而被拒絕引入的構(gòu)件,打開 Maven 的調(diào)試標(biāo)記運(yùn)行
mvn install -Dmaven.test.skip=true 給任何目標(biāo)添加maven.test.skip 屬性就能跳過(guò)測(cè)試
mvn install assembly:assembly 構(gòu)建裝配Maven Assembly 插件是一個(gè)用來(lái)創(chuàng)建你應(yīng)用程序特有分發(fā)包的插件
mvn jetty:run 調(diào)用 Jetty 插件的 Run 目標(biāo)在 Jetty Servlet 容器中啟動(dòng) web 應(yīng)用
mvn compile 編譯你的項(xiàng)目
mvn clean install 刪除再編譯
mvn hibernate3:hbm2ddl 使用 Hibernate3 插件構(gòu)造數(shù)據(jù)庫(kù)
Maven庫(kù):http://repo2.maven.org/maven2/
Maven依賴查詢:http://mvnrepository.com/