選中maven項目,右鍵-->Run As或Debug As-->maven buid,maven install,maven test有什麼區別?html
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命令,右鍵-->「刪除」便可。
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
哪位大佬如若發現文章存在紕漏之處或須要補充更多內容,歡迎留言!!!