常用參數
mvn deploy
參數:
- -Dmaven.test.skip=true
跳過單元測試,單元測試會走springboot啟動工程
mvn deploy -Dmaven.test.skip=true
- -pl:指定moudle單獨進行deploy
只需要部署其他工程依賴的模塊即可,不需要將整個工程deploy。
mvn deploy -pl assets-db
- -N:不構建子工程,只上傳父目錄pom
mvn deploy -N
mvn install
參數:
- -Dmaven.repo.local 指定install目錄
一般本地有多個倉庫時會用到,如果不加該參數,默認位置為/Users/{userName}/.m2,如果在項目中修改了repository位置,會導致引用不到。
mvn install -Dmaven.repo.local=/.../repository
- --settings 指定配置文件
當我們打包環境比較復雜的時候,不同的工程要連接不同的私服庫的時候,就需要在執行mvn命令的時候指定setting.xml文件,此時mvn會按照指定配置文件里配置的nexus地址和用戶名進行取包。一般會跟-Dmaven.repo.local同時使用。
mvn install --settings /.../apache-maven-3.8.3/conf/settings.xml
其他
參數:
- -e 打印詳細報錯信息
當deploy或者install時,加上該參數會打印出更詳細的報錯信息,方便排查問題。
mvn deploy -e
- -X 打印debug信息
mvn deploy -X
問題
背景:需要將相關的jar包手動上傳至maven私服。
報錯信息:上傳失敗,報401權限錯誤。
解決:在deploy時加上-X參數,會打印具體的信息,包括上傳的file(jar包)路徑,項目的groupId、artifactId、version版本、repositoryId、目標倉庫地址url。
注意:repositoryId必須跟pom文件中配置的
總結:
以上參數一般都是組合使用,舉幾個例子可以直接選擇性CV使用
eg:
- 上傳指定jar包到指定倉庫
mvn deploy:deploy-file
-Dmaven.test.skip=true
-Dfile=/...路徑地址/1.0.3-SNAPSHOT/xxx.jar
-DgroupId=xxx.xxx.xxx
-DartifactId=xxxx
-Dversion=1.0.3-SNAPSHOT
-Dpackaging=jar
-DrepositoryId=xxxxx
-Durl=https://.../repository/xxx-SnapShot/
- 根據指定配置文件將指定moudle install到指定本地位置
mvn clean install
-Dmaven.test.skip=true
--settings /...路徑地址/settings.xml
-Dmaven.repo.local=/.../repository/...
-pl assets-base
-e
-U // 強制從倉庫更新,忽略緩存