mvn參數-N、-U理解
-
關於-N
-N,--non-recursive Do not recurse into sub-projects
意思是,不遞歸到子項目(子模塊)。
舉例:
一個父項目下Father面有3個子項目A、B、C,都生成jar包,則有Father.jar、A.jar、B.jar、C.jar;
這個時候A項目依賴了B、C項目。此時如果使用mvn clean install -N,則只會把Father.jar安裝到本地倉庫(~/.m2/repository),
而不會安裝其他三個包造成的問題是,如果你此時使用如下命令拷貝依賴包,則會報錯:說找不到依賴包B.jar/C.jar
mvn dependency:copy-dependencies -DoutputDirectory=$WORKSPACE/dependencies
-
關於-U
-U,--update-snapshots Forces a check for missing releases
and updated snapshots on remote repositories意思是:強制刷新本地倉庫不存在release版和所有的snapshots版本。
- 對於release版本,本地已經存在,則不會重復下載
- 對於snapshots版本,不管本地是否存在,都會強制刷新,但是刷新並不意味着把jar重新下載一遍。
只下載幾個比較小的文件,通過這幾個小文件確定本地和遠程倉庫的版本是否一致,再決定是否下載
如圖所示:只有18:32時間的文件是強制刷新下來的文件
關於mvn各個階段的工作
- mvn clean: 清除各個模塊target目錄及里面的內容
- mvn validate:
- mvn compile: 靜態編譯,根據xx.java生成xx.class文件
- mvn test: 單元測試
- mvn package: 打包,生成各個模塊下面的target目錄及里面的內容
- mvn verify:
- mvn install: 把打好的包放入本地倉庫(~/.m2/repository)
- mvn site:
- mvn deploy: 部署,把包發布到遠程倉庫