Maven常用命令以及使用說(shuō)明
一、Maven常用命令
1. 創(chuàng)建Maven的普通Java項(xiàng)目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName2. 創(chuàng)建Maven的Web項(xiàng)目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp3. 反向生成 maven 項(xiàng)目的骨架:
mvn archetype:generate
你是怎么創(chuàng)建你的maven項(xiàng)目的?是不是像這樣:
mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common
如果你還再用的話,那你就out了,現(xiàn)代人都用mvn archetype:generate了,它將創(chuàng)建項(xiàng)目這件枯燥的事更加人性化,你再也不需要記那么多的archetypeArtifactId,你只需輸入archetype:generate,剩下的就是做”選擇題”了.
cmd步驟:
縮寫寫法:
mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.01-SNAPSHOT
4. 編譯源代碼:
mvn compile
5. 編譯測(cè)試代碼:
mvn test-compile
6. 運(yùn)行測(cè)試:
mvn test
7. 產(chǎn)生site:
mvn site
8. 打包:
mvn package
9. 在本地Repository中安裝jar:
mvn install 例:installing D:\xxx\xx.jar to D:\xx\xxxx
10. 清除產(chǎn)生的項(xiàng)目:
mvn clean
11. 生成eclipse項(xiàng)目:
mvn eclipse:eclipse
12. 生成idea項(xiàng)目:
mvn idea:idea
13. 組合使用goal命令,如只打包不測(cè)試:
mvn -Dtest package
14. 編譯測(cè)試的內(nèi)容:
mvn test-compile
15. 只打jar包:
mvn jar:jar
16. 只測(cè)試而不編譯,也不測(cè)試編譯:
mvn test -skipping compile -skipping test-compile ( -skipping 的靈活運(yùn)用,當(dāng)然也可以用于其他組合命令)
17. 清除eclipse的一些系統(tǒng)設(shè)置:
mvn eclipse:clean
18.查看當(dāng)前項(xiàng)目已被解析的依賴:
mvn dependency:list
19.上傳到私服:
mvn deploy
20. 強(qiáng)制檢查更新,由于快照版本的更新策略(一天更新幾次、隔段時(shí)間更新一次)存在,如果想強(qiáng)制更新就會(huì)用到此命令:
mvn clean install-U
21. 源碼打包:
mvn source:jar 或 mvn source:jar-no-fork
mvn compile與mvn install、mvn deploy的區(qū)別
- mvn compile,編譯類文件
- mvn install,包含mvn compile,mvn package,然后上傳到本地倉(cāng)庫(kù)
- mvn deploy,包含mvn install,然后,上傳到私服
二、PS:一般使用情況是這樣
首先通過(guò)cvs或svn下載代碼到本機(jī),然后執(zhí)行mvn eclipse:eclipse生成ecllipse項(xiàng)目文件,然后導(dǎo)入到eclipse就行了;修改代碼后執(zhí)行mvn compile或mvn test檢驗(yàn),也可以下載eclipse的maven插件。
1. 顯示版本信息 :
mvn -version/-v
2. 創(chuàng)建mvn項(xiàng)目:
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app
3. 生成target目錄,編譯、測(cè)試代碼,生成測(cè)試報(bào)告,生成jar/war文件 :
mvn package
4. 運(yùn)行項(xiàng)目于jetty上:
mvn jetty:run
5. 顯示詳細(xì)錯(cuò)誤 信息:
mvn -e
6. 驗(yàn)證工程是否正確,所有需要的資源是否可用:
mvn validate
7. 在集成測(cè)試可以運(yùn)行的環(huán)境中處理和發(fā)布包:
mvn integration-test
8. 運(yùn)行任何檢查,驗(yàn)證包是否有效且達(dá)到質(zhì)量標(biāo)準(zhǔn):
mvn verify
9. 產(chǎn)生應(yīng)用需要的任何額外的源代碼,如xdoclet :
mvn generate-sources
10. 使用 help 插件的 describe 目標(biāo)來(lái)輸出 Maven Help 插件的信息:
mvn help:describe -Dplugin=help
11. 使用Help 插件輸出完整的帶有參數(shù)的目標(biāo)列 :
mvn help:describe -Dplugin=help -Dfull
12. 獲取單個(gè)目標(biāo)的信息,設(shè)置 mojo 參數(shù)和 plugin 參數(shù)。此命令列出了Compiler 插件的compile 目標(biāo)的所有信息 :
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
13. 列出所有 Maven Exec 插件可用的目標(biāo):
mvn help:describe -Dplugin=exec -Dfull
14. 看這個(gè)“有效的 (effective)”POM,它暴露了 Maven的默認(rèn)設(shè)置 :
mvn help:effective-pom
15. 想要查看完整的依賴蹤跡,包含那些因?yàn)闆_突或者其它原因而被拒絕引入的構(gòu)件,打開 Maven 的調(diào)試標(biāo)記運(yùn)行 :
mvn install -X
16. 給任何目標(biāo)添加maven.test.skip 屬性就能跳過(guò)測(cè)試 :
mvn install -Dmaven.test.skip=true
17. 構(gòu)建裝配Maven Assembly 插件是一個(gè)用來(lái)創(chuàng)建你應(yīng)用程序特有分發(fā)包的插件 :
mvn install assembly:assembly
18. 生成Wtp插件的Web項(xiàng)目 :
mvn -Dwtpversion=1.0 eclipse:eclipse
19. 清除Eclipse項(xiàng)目的配置信息(Web項(xiàng)目) :
mvn -Dwtpversion=1.0 eclipse:clean
20. 將項(xiàng)目轉(zhuǎn)化為Eclipse項(xiàng)目 :
mvn eclipse:eclipse
mvn exec命令可以執(zhí)行項(xiàng)目中的main函數(shù)
- 首先需要編譯java工程:mvn compile
- 不存在參數(shù)的情況下:mvn exec:java -Dexec.mainClass="***.Main"
- 存在參數(shù):mvn exec:java -Dexec.mainClass="***.Main" -Dexec.args="arg0 arg1 arg2"
- 指定運(yùn)行時(shí)庫(kù):mvn exec:java -Dexec.mainClass="***.Main" -Dexec.classpathScope=runtime
22. 打印出已解決依賴的列表 :
mvn dependency:resolve
23. 打印整個(gè)依賴樹 :
mvn dependency:tree
在應(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 help:describe
你是否因?yàn)橛洸磺迥硞€(gè)插件有哪些goal而痛苦過(guò),你是否因?yàn)橄氩黄鹉硞€(gè)goal有哪些參數(shù)而苦惱,那就試試這個(gè)命令吧,它會(huì)告訴你一切的.
參數(shù): 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:與-Dplugin一起使用,它會(huì)列出某個(gè)插件的goal信息,
如果嫌不夠詳細(xì),同樣可以加-Ddetail.(注:一個(gè)插件goal也被認(rèn)為是一個(gè) “Mojo”)
下面大家就運(yùn)行mvn help:describe -Dplugin=help -Dmojo=describe感受一下吧!
mvn tomcat:run
用了maven后,你再也不需要用eclipse里的tomcat來(lái)運(yùn)行web項(xiàng)目(實(shí)際工作中經(jīng)常會(huì)發(fā)現(xiàn)用它會(huì)出現(xiàn)不同步更新的情況),只需在對(duì)應(yīng)目錄里運(yùn)行 mvn tomat:run命令,然后就可在瀏覽器里運(yùn)行查看了.如果你想要更多的定制,可以在pom.xml文件里加下面配置:
01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web 08 9090 09 10 11 12 當(dāng)然你也可以在命令里加參數(shù)來(lái)實(shí)現(xiàn)特定的功能,
下面幾個(gè)比較常用:
- 跳過(guò)測(cè)試:-Dmaven.test.skip(=true)
- 指定端口:-Dmaven.tomcat.port=9090
- 忽略測(cè)試失敗:-Dmaven.test.failure.ignore=true 當(dāng)然,如果你的其它關(guān)聯(lián)項(xiàng)目有過(guò)更新的話,一定要在項(xiàng)目根目錄下運(yùn)行mvn clean install來(lái)執(zhí)行更新,再運(yùn)行mvn tomcat:run使改動(dòng)生效.
mvnDebug tomcat:run
這條命令主要用來(lái)遠(yuǎn)程測(cè)試,它會(huì)監(jiān)聽遠(yuǎn)程測(cè)試用的8000端口,在eclipse里打開遠(yuǎn)程測(cè)試后,它就會(huì)跑起來(lái)了,設(shè)斷點(diǎn),調(diào)試,一切都是這么簡(jiǎn)單.上面提到的那幾個(gè)參數(shù)在這里同樣適用.
mvn dependency:sources
故名思義,有了它,你就不用到處找源碼了,運(yùn)行一下,你項(xiàng)目里所依賴的jar包的源碼就都有了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java PriorityQueue優(yōu)點(diǎn)和缺點(diǎn)面試精講
這篇文章主要為大家介紹了Java面試中PriorityQueue的優(yōu)點(diǎn)和缺點(diǎn)及使用注意詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
idea中@override報(bào)錯(cuò)在實(shí)現(xiàn)接口方法時(shí)無(wú)法使用的解決
文章介紹了在使用IDEA新建Filter類時(shí)遇到的@Override注解報(bào)錯(cuò)問(wèn)題,原因是JDK版本過(guò)低,通過(guò)在maven配置文件中設(shè)置編譯插件或更改項(xiàng)目JDK版本,解決了該問(wèn)題2025-12-12
SpringBoot啟動(dòng)時(shí)自動(dòng)執(zhí)行特定代碼的完整指南
Spring?Boot?提供了多種靈活的方式在應(yīng)用啟動(dòng)時(shí)執(zhí)行初始化代碼,以下是所有可行方法的詳細(xì)說(shuō)明和最佳實(shí)踐,大家可以根據(jù)自己的需求進(jìn)行選擇2025-04-04
SpringBoot整合Mybatis簡(jiǎn)單實(shí)現(xiàn)增刪改查
這篇文章主要介紹了SpringBoot整合Mybatis簡(jiǎn)單實(shí)現(xiàn)增刪改查,文章為圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
Spring使用ResourceLoader統(tǒng)一管理本地資源詳解
在項(xiàng)目開發(fā)中,我們經(jīng)常需要讀取各種本地資源文件,Spring 框架提供了一個(gè)強(qiáng)大而優(yōu)雅的解決方案,即ResourceLoader 接口,下面我們就來(lái)看看具體實(shí)現(xiàn)方法吧2026-01-01
Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題
這篇文章主要介紹了Intellij Idea 多模塊Maven工程中模塊之間無(wú)法相互引用問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

