maven常用的命令(window控制檯和linux命令是一致的)
六個必須掌握的maven命令:
1. mvn help:describe 你是否因為記不清某個外掛有哪些goal而痛苦過,你是否因為想不起某個goal有哪些引數而苦惱,那就試試這個命令吧,它會告訴你一切的. 引數: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:與-Dplugin一起使用,它會列出某個外掛的goal資訊,如果嫌不夠詳細,同樣可以加-Ddetail.(注:一個外掛goal也被認為是一個 “Mojo”) 下面大家就執行mvn help:describe -Dplugin=help
-Dmojo=describe感受一下吧!
2. mvn archetype:generate 你是怎麼建立你的maven專案的?是不是像這樣:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,如果你還再用的話,那你就out了,現代人都用mvn archetype:generate了,它將建立專案這件枯燥的事更加人性化,你再也不需要記那麼多的archetypeArtifactId,你只需輸入archetype:generate,剩下的就是做”選擇題”了.
3. mvn tomcat:run 用了maven後,你再也不需要用eclipse裡的tomcat來執行web專案(實際工作中經常會發現用它會出現不同步更新的情況),只需在對應目錄(如/ryanote)裡執行 mvn tomat:run命令,然後就可在瀏覽器裡執行http://localhost:8080/ryanote查看了.如果你想要更多的定製,可以在pom.xml檔案里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web
08 9090 09 10 11 12 當然你也可以在命令里加引數來實現特定的功能,下面幾個比較常用: 1. 跳過
4. mvnDebug tomcat:run 這條命令主要用來遠端測試,它會監聽遠端測試用的8000埠,在eclipse裡開啟遠端測試後,它就會跑起來了,設斷點,除錯,一切都是這麼簡單.上面提到的那幾個引數在這裡同樣適用.
5. mvn dependency:sources 故名思義,有了它,你就不用到處找原始碼了,執行一下,你專案裡所依賴的jar包的原始碼就都有了
6. mvn clean package 進入原始碼目錄,執行該命令,生成jar包
其他常用命令:
1. 建立Maven的普通Java專案:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
2. 建立Maven的Web專案:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
3. 編譯原始碼: mvn compile
4. 編譯測試程式碼:mvn test-compile
5. 執行測試:mvn test
6. 產生site:mvn site
7. 打包:mvn package
8. 在本地Repository中安裝jar:mvn install
9. 清除產生的專案:mvn clean
10. 生成eclipse專案:mvn eclipse:eclipse
11. 生成idea專案:mvn idea:idea
12. 組合使用goal命令,如只打包不測試:mvn -Dtest package
13. 編譯測試的內容:mvn test-compile
14. 只打jar包: mvn jar:jar
15. 只測試而不編譯,也不測試編譯:mvn test -skipping compile -skipping test-compile
( -skipping 的靈活運用,當然也可以用於其他組合命令)
16. 清除eclipse的一些系統設定:mvn eclipse:clean
package是把jar打到本專案的target下,而install時把target下的jar安裝到本地倉庫,供其他專案使用.
命令引數 | 備註 |
mvn -v | --version 顯示版本資訊; |
mvn -V | --show-version 顯示版本資訊後繼續執行Maven其他目標; |
mvn -h | --help 顯示幫助資訊; |
mvn -e | --errors 控制Maven的日誌級別,產生執行錯誤相關訊息; |
mvn -X | --debug 控制Maven的日誌級別,產生執行除錯資訊; |
mvn -q | --quiet 控制Maven的日誌級別,僅僅顯示錯誤; |
mvn -Pxxx | 啟用 id 為 xxx的profile (如有多個,用逗號隔開); |
mvn -Dxxx=yyy | 指定Java全域性屬性; |
mvn -o | --offline 執行offline模式,不聯網更新依賴; |
mvn -N | --non-recursive 僅在當前專案模組執行命令,不構建子模組; |
mvn -pl | --module_name 在指定模組上執行命令; |
mvn -ff | --fail-fast 遇到構建失敗就直接退出; |
mvn -fn | --fail-never 無論專案結果如何,構建從不失敗; |
mvn -fae | --fail-at-end 僅影響構建結果,允許不受影響的構建繼續; |
mvn -C | --strict-checksums 如果校驗碼不匹配的話,構建失敗; |
mvn -c | --lax-checksums 如果校驗碼不匹配的話,產生告警; |
mvn -U | 強制更新snapshot型別的外掛或依賴庫(否則maven一天只會更新一次snapshot依賴); |
mvn -npu | --no-plugin-s 對任何相關的註冊外掛,不進行最新檢查(使用該選項使Maven表現出穩定行為,該穩定行為基於本地倉庫當前可用的所有外掛版本); |
mvn -cpu | --check-plugin-updates 對任何相關的註冊外掛,強制進行最新檢查(即使專案POM裡明確規定了Maven外掛版本,還是會強制更新); |
mvn -up | --update-plugins [mvn -cpu]的同義詞; |
mvn -B | --batch-mode 在非互動(批處理)模式下執行(該模式下,當Mven需要輸入時,它不會停下來接受使用者的輸入,而是使用合理的預設值); |
mvn -f | --file <file> 強制使用備用的POM檔案; |
mvn -s | --settings <arg> 使用者配置檔案的備用路徑; |
mvn -gs | --global-settings <file> 全域性配置檔案的備用路徑; |
mvn -emp | --encrypt-master-password <password> 加密主安全密碼,儲存到Maven settings檔案裡; |
mvn -ep | --encrypt-password <password> 加密伺服器密碼,儲存到Maven settings檔案裡; |
mvn -npr | --no-plugin-registry 對外掛版本不使用~/.m2/plugin-registry.xml(外掛登錄檔)裡的配置; |