1.情景展示
選中maven項目,右鍵-->Run As或Debug As-->maven buid,maven install,maven test有什么區別?
2.區別說明
6 Maven clean-->執行的是maven的原生命令:
mvn clean
表示:刪除target目錄。
原目錄結構存在target目錄
執行該命令后, target目錄被刪除。
2018/11/14
選中target目錄-->右鍵-->刷新-->在windows資源管理器下打開該目錄,你會發現class已經重新編譯好
注意:這不是mvn clean命令執行的只是清空target目錄,classes文件之所以重新被編譯,依賴於eclipse的自動編譯功能!
7 Maven generate-sources-->執行的是maven的原生命令:
mvn generate-sources
表示:會根據pom配置去生成源代碼格式的包,產生應用需要的任何額外的源代碼(沒用過)
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
寫在最后
哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!