一、Maven常用命令及其作用
1、 maven clean:對項目進行清理,刪除target目錄下編譯的內容
2、 maven compile:編譯項目源代碼
3、 maven test:對項目進行運行測試
4、 maven packet:打包文件並存放到項目的target目錄下,打包好的文件通常都是編譯后的class文件
5、 maven install:在本地倉庫生成倉庫的安裝包,可供其他項目引用,同時打包后的文件放到項目的target目錄下
二、常用命令使用場景舉例
1、mvn clean package依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7個階段
package命令完成了項目編譯、單元測試、打包功能,但沒有把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
2、mvn clean install依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8個階段
install命令完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠程maven私服倉庫
3、mvn clean deploy依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個階段
deploy命令完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
三、常見問題
(一)mvn clean install 和 mvn install 的區別
1、根據maven在執行一個生命周期命令時,理論上講,不做mvn install 得到的jar包應該是最新的,除非使用其他方式修改jar包的內容,但沒有修改源代碼
2、平時可以使用mvn install ,不使用clean會節省時間,但是最保險的方式還是mvn clean install,這樣可以生成最新的jar包或者其他包
(二)maven兩種跳過單元測試方法的區別
1、 mvn package -Dmaven.test.skip=true
不但跳過了單元測試的運行,同時也跳過了測試代碼的編譯
2、 mvn package -DskipTests
跳過單元測試,但是會繼續編譯。如果沒時間修改單元測試的bug,或者單元測試編譯錯誤,則使用第一種,不要使用第二種