eclipse maven build、maven clean、maven install和maven test的區別 精析

 
 

1.情景展現

  選中maven項目,右鍵-->Run As或Debug As-->maven buid,maven install,maven test有什麼區別?html

2.區別說明

  6 Maven  clean-->執行的是maven的原生命令:前端

mvn clean

  表示:刪除target目錄。java

  原目錄結構存在target目錄windows

  執行該命令後, target目錄被刪除。併發

  2018/11/14eclipse

  選中target目錄-->右鍵-->刷新-->在windows資源管理器下打開該目錄,你會發現class已經從新編譯好maven

  注意:這不是mvn clean命令執行的只是清空target目錄,classes文件之因此從新被編譯,依賴於eclipse的自動編譯功能!  單元測試

  7 Maven generate-sources-->執行的是maven的原生命令:測試

mvn generate-sources

  表示:會根據pom配置去生成源代碼格式的包,產生應用須要的任何額外的源代碼(沒用過)ui

  8 Maven  install-->執行的是maven的原生命令:

mvn install

  表示:對項目進行編譯、將項目打成war包而且發佈到本地倉庫。

  target目錄說明:

  classes目錄:.class,.properties,.xml文件;

  項目名目錄:項目全部源碼(前端、後臺、jar包)

  項目名.war:將項目名目錄打成的war包。

  生成的target目錄展現

  安裝到本地倉庫的目錄展現

  9 Maven  test-->執行的是maven的原生命令:

mvn test

  表示的是:對項目進行編譯並執行測試代碼。  

  生成的目錄:

  5 Maven build...-->maven沒有mvn buid命令 

  表示的是:這是eclipse自帶的mvn插件,經過這個功能,你能夠自定義設置要執行的maven命令。

  用這個功能,咱們能幹什麼?

  舉2個栗子:

  案例一:

  由於maven在打包時,若是已經存在一個包時,再次執行打包命令時,若是不把原來的war包刪除,常常會致使包沒有更新;

  這時,咱們就須要先清除該war包(執行clean命令對應eclipse中的Maven clean功能),再從新打包(執行package或install命令對應eclipse中的Maven install功能)。

  咱們可使用"Maven build"這個功能,在"Goals"一欄,輸入命令:clean install,執行一次便可。

  案例二:

  對項目進行打包的時候,跳過單元測試。

  eclipse沒有這個功能,只能經過自定義maven命令來實現,在Maven build...這個功能進行設置。

  示例一:打包併發布到本地倉庫

  錯誤用法:不設置命令,直接run

  至關於maven命令:

mvn

  報錯信息以下: 

  正確用法:輸入 install

 

  示例二:打包時,跳過單元測試

  方式一:在上圖勾選上「Skip Tests」

  使用這種方式:src/test/java和src/test/resources這兩個目錄下的文件不會被編譯,天然不會被添加到編譯好的項目當中。

  方式二:聲明maven命令:「-DskipTests」

  使用這種方式: src/test/java和src/test/resources這兩個目錄下的文件依然會被編譯,但不會被添加到編譯好的項目當中。

  4 Maven build

  表示的是:執行已經定義好的maven命令。

  一個項目能夠「Maven build...」功能定義n個maven命令,而後經過「Maven build」功能來執行想要執行的命令。

  Run Configurations...

  可經過這個功能,對已經自定義的maven命令進行新建、修改、運行、刪除;

  如何刪除多餘的maven命令?

  選中不須要的maven命令,右鍵-->「刪除」便可。

3.maven其它命令說明

mvn compile

  表示的是:對項目源代碼進行編譯。  

生成的目錄:

mvn deploy

  表示的是:將項目發佈到遠程倉庫。

mvn dependency:tree

  表示的是:顯示maven依賴樹。

mvn dependency:list

  表示的是:顯示maven依賴列表。

mvn package

  表示的是:編譯項目並打成war包。

  跳過單元測試的兩種方式:

  方式一:

-DskipTests

  方式二:

-Dmaven.test.skip=true

  表示的是:測試類不會被編譯,或即便被編譯也不會被添加到項目當中。

  另外,這個指令沒有前後順序,均能正常執行。  

  舉例: 以打包併發布到本地倉庫時,跳過測試類爲例。

// 方式一:形式一
mvn install -DskipTests
// 方式一:形式二
mvn -DskipTests install
// 方式二:形式一
mvn install -Dmaven.test.skip=true
// 方式二:形式二
mvn -Dmaven.test.skip=true install

 

寫在最後

  哪位大佬如若發現文章存在紕漏之處或須要補充更多內容,歡迎留言!!!

 相關推薦:

相關文章
相關標籤/搜索