Maven生命周期分為三部分:
Clean Lifecycle 在進(jìn)行真正的構(gòu)建之前進(jìn)行一些清理工作。
pre-clean 執(zhí)行一些需要在clean之前完成的工作
clean 移除所有上一次構(gòu)建生成的文件
post-clean 執(zhí)行一些需要在clean之后立刻完成的工作
Default Lifecycle 構(gòu)建的核心部分,編譯,測(cè)試,打包,部署等等。
validate 驗(yàn)證工程是否正確,所有需要的資源是否可用。
generate-sources 產(chǎn)生應(yīng)用需要的任何額外的源代碼,如xdoclet。
generate-resources 同上【資源文件】
compile 編譯項(xiàng)目的源代碼。
generate-test-sources 同上【測(cè)試代碼】
generate-test-resources 同上【測(cè)試資源文件】
test-compile 編譯測(cè)試源代碼。
test 使用合適的單元測(cè)試框架運(yùn)行測(cè)試。這些測(cè)試代碼不會(huì)被打包或部署。
package 接受編譯好的代碼,打包成可發(fā)布的格式,如 JAR 。
integration-test 在集成測(cè)試可以運(yùn)行的環(huán)境中處理和發(fā)布包。
verify 運(yùn)行任何檢查,驗(yàn)證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn)。
install 將包安裝至本地倉(cāng)庫(kù),以讓其它項(xiàng)目依賴。
deploy 將最終的包復(fù)制到遠(yuǎn)程的倉(cāng)庫(kù),以讓其它開發(fā)人員與項(xiàng)目共享。
Site Lifecycle 生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)。
pre-site 執(zhí)行一些需要在生成站點(diǎn)文檔之前完成的工作
site 生成項(xiàng)目的站點(diǎn)文檔
post-site 執(zhí)行一些需要在生成站點(diǎn)文檔之后完成的工作,并且為部署做準(zhǔn)備
site-deploy 將生成的站點(diǎn)文檔部署到特定的服務(wù)器上
Maven庫(kù):
http://repo2.maven.org/maven2/
Maven依賴查詢:
http://mvnrepository.com/
Maven常用命令:
- 創(chuàng)建Maven的普通java項(xiàng)目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName - 創(chuàng)建Maven的Web項(xiàng)目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp - 編譯源代碼: mvn compile
- 編譯測(cè)試代碼:mvn test-compile
- 運(yùn)行測(cè)試:mvn test
- 產(chǎn)生site:mvn site
- 打包:mvn package
- 在本地Repository中安裝jar:mvn install
- 清除產(chǎn)生的項(xiàng)目:mvn clean
- 生成eclipse項(xiàng)目:mvn eclipse:eclipse
- 生成idea項(xiàng)目:mvn idea:idea
- 組合使用goal命令,如只打包不測(cè)試:mvn -Dtest package
- 編譯測(cè)試的內(nèi)容:mvn test-compile
- 只打jar包: mvn jar:jar
- 只測(cè)試而不編譯,也不測(cè)試編譯:mvn test -skipping compile -skipping test-compile
( -skipping 的靈活運(yùn)用,當(dāng)然也可以用于其他組合命令) - 清除eclipse的一些系統(tǒng)設(shè)置:mvn eclipse:clean
ps:
一般使用情況是這樣,首先通過cvs或svn下載代碼到本機(jī),然后執(zhí)行mvn eclipse:eclipse生成ecllipse項(xiàng)目文件,然后導(dǎo)入到eclipse就行了;修改代碼后執(zhí)行mvn compile或mvn test檢驗(yàn),也可以下載eclipse的maven插件。
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 install -X 想要查看完整的依賴蹤跡,包含那些因?yàn)闆_突或者其它原因而被拒絕引入的構(gòu)件,打開 Maven 的調(diào)試標(biāo)記運(yùn)行
mvn install -Dmaven.test.skip=true 給任何目標(biāo)添加maven.test.skip 屬性就能跳過測(cè)試
mvn install assembly:assembly 構(gòu)建裝配Maven Assembly 插件是一個(gè)用來創(chuàng)建你應(yīng)用程序特有分發(fā)包的插件