maven一波流(7)——使用命令列或eclipse管理專案生命週期
概述
普通專案編碼、編譯、測試、打包、部署有兩種方式:一種是在整合開發環境中直接實施,一種是使用命令(windows命令列或linux命令)進行操作。
maven專案也不例外,也可以通過命令列或者eclipse等開發環境直接進行生命週期管理。
maven專案生命週期規範
maven專案制定了統一的專案生命週期規範,包括:清理、初始化、編譯、測試、打包、整合測試、驗證、部署、站點生成。
我們來說點平時用得到的命令到底是幹嘛的,在說之前首先得了解下mvn命令如何執行
mvn命令執行方法
首先得把maven配到環境變數Path中
開啟CMD命令列
使用cd命令將當前目錄切換到Maven工程根目錄下
執行命令
如果上面命令列的內容不熟悉,先還是強烈建議瞭解下windows命令列的。
mvn clean
清理專案,相當於刪除已經生成的東西,沒啥大用
mvn test
編譯專案,並執行測試程式碼,如果編譯專案失敗就提示失敗,如果編譯成功執行測試(例如junit單元測試),並給出測試結果。
這個還是比較常用的,強烈建議maven構建的專案測試之類的各種動作都用maven來做
mvn package & mvn clean package & mvn clean package -Dmaven.test.skip=true
mvn package 打包。一般打成jar或war包。如果加上-Dmaven.test.skip=true表示跳過測試。(不同的專案具體打包之前需要的pom.xml配置還有所不同,包括需要的依賴和外掛,此處不再具體論證,後續收集下各類專案打包方式集中說明下)。
OK,還有一個需要注意的問題:建議直接寫mvn clean install,這樣先清理再安裝,意義很簡單:有時候你發現某個目錄下軟體出問題,可以刪除重新安裝。你這個專案可能因為種種原因之前生成有問題,不如直接清理了重新生成。
mvn install & mvn clean install
這個是重點,很多童鞋不使用該命令,覺得沒用,直接測試通過就可以打包部署了,不知道install安裝是幹啥的。
實際上install安裝的意義是:將打包的元件安裝到本地依賴倉庫中,這樣其他專案就可以呼叫本專案了。
比如咱們開發了專案 A、專案B。
專案A的座標:
<groupId>com.panda</ groupId>
<artifactId>projecta</artifactId>
<version>0.0.1-SNAPSHOT</version>
專案B在pom.xml引用專案 A,此時專案A需要執行過mvn install安裝,專案B才能再本地倉庫找已安裝的A。
<dependency>
<groupId>com.panda</groupId>
<artifactId>projecta</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
mvn deploy & mvn clean deploy
這個就厲害了,不但打包,還將打包的包部署到本地和遠端maven私服倉庫,這個用的不多,此處不討論。
eclipse中執行maven生命週期管理
右鍵專案-Run as,裡面就有maven test、maven clean、maven install,你懂得。