1. 程式人生 > >maven常用的命令(window控制檯和linux命令是一致的)

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. 跳過

測試:-Dmaven.test.skip(=true) 2. 指定埠:-Dmaven.tomcat.port=9090 3. 忽略測試失敗:-Dmaven.test.failure.ignore=true 當然,如果你的其它關聯專案有過更新的話,一定要在專案根目錄下執行mvn clean install來執行更新,再執行mvn tomcat:run使改動生效.

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(外掛登錄檔)裡的配置;