一、Maven常用命令及其作用 Maven的生命周期包括:clean、validate、compile、test、package、verify、install、site、deploy,其中需要註意的是:執行後面的命令時,前面的命令自動得到執行,(其中,也可以跳過其中的步驟,如:test,在mvn i ...
一、Maven常用命令及其作用
Maven的生命周期包括:clean、validate、compile、test、package、verify、install、site、deploy,其中需要註意的是:執行後面的命令時,前面的命令自動得到執行,(其中,也可以跳過其中的步驟,如:test,在mvn install或mvn package後加上-Dmaven.test.skip=true或-DskipTests即可)。
生命周期 描述
1.clean 清理刪除target目錄下編譯的內容。遇到問題多清理
2.validate 驗證。驗證項目是否正確。
3.compile 編譯項目源代碼。執行編譯,源代碼編譯在此階段完成。
4.test 對項目進行運行測試。使用適當的單元測試框架(例如JUnit)運行測試。
5.package 打包。打成jar或war包,其中會自動進行clean+compile。
6.verify 檢查。對集成測試的結果進行檢查,以保證質量達標。
7.install 安裝。將本地工程jar包上傳安裝到本地倉庫,以供其他項目使用。
8.site 站點。進行站點部署。
9.deploy 部署。拷貝最終的工程包到遠程倉庫或私服中,以共用給其他開發人員和工程。
二、常用命令使用場景舉例
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,或者單元測試編譯錯誤,則使用第一種,不要使用第二種