maven項目右鍵快捷方式,然後點擊Run As
在某一個maven項目右鍵快捷方式,然後點擊Run As就可以發現幾個Maven的命令:
1、Maven Build:
這個命令用於編譯Maven工程,執行命令後會在target文件夾中的classes中生成對應的class文件。
2、Maven Build....
可以在打開窗口輸入install命令,勾選上"Skip Tests"表示不編譯測試代碼(在src/test/下的代碼),
因為需要生成測試包或正式包的時候,測試代碼是不需要的,測試代碼只是開發的時候需要,
最後Run執行命令:
Name:可以給這個操作命令命名,每執行一個maven命令都會被保存。
Goals:輸入我們需要執行的maven命令,一次執行多個命令用空格隔開。
復選框:下面的復選框可以讓我們進行一些選擇性的操作,如上圖跳過測試。
這個時候看看項目目錄下是否多了個target文件:
target文件內容:
這個時候看到生成的XXX.war包,將war包放入web容器,即可啟動web項目。
(web項目打成war包,Java項目打成jar包,不同項目配置,打得包類型不同,這裏是web項目)
註: 我們也可以執行組合命令,一步完成打包,比如:
運行時效果與其分步執行clean,然後再install一樣。
3、Maven Clean:
刪除target文件夾,即刪除生成的package包以及class等文件。
4、Maven Test:
先自動進行編譯,在運行所有的測試用例。
5、Maven install:
發布生成對應的package包(有war和jar兩種形式)。
PS:留意上面的命令的作用,build和test都會生成相應的 class文件。也就是說,當你新建一個maven工程,或者clean一個maven工程後,如果沒有使用這兩個命令,直接針對類進行測試,會跑出 java.class.notfound的錯誤。因為此時還沒有編譯生成class文件。只有使用了上面的兩個命令後,才能針對某個類進行單元測試(實際 上單元測試我們會選擇junit)。
Maven的生命周期就是對所有的構建過程進行抽象和統一。包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署和站點生成等幾乎所有的構建步驟。
6、Maven Update Project...
該命令的更新項目之意,其中包含多個勾選項:
Update dependencies:更新依賴
Update project configuration from pom.xml:根據pom文件更新項目配置,我想這一般用在pom文件發生修改的時候
Refresh workspace resources from local filesystem:刷新本地工作空間資源
Clean project:清空target目錄並重新編譯
我覺得這個更新的最重要功能還是更新依賴,一旦我們建立好依賴關系,一般是不會經常進行修改的,這裏的修改指的是pom文件的修改,只要我們沒有修改pom文件,那麽也就是說我們沒有必要在僅僅更新項目代碼的情況下去執行項目更新。
而且其實但我們修改了POM文件之後,Maven會自動執行項目更新操作。
7、服務器publish發布
這個命令是服務器命令,Eclipse整合Tomcat之後,當我們修改了源碼,只需要執行publish命令就可以將修改後的內容發布到服務 器目錄,同時發布的還包括之前未完成的打包任務,執行publish命令會自動完成打包並將該最新包發布到服務器lib下,但是這個命令並不會更新本地倉 庫與target目錄中的jar包,這兩處只能手動執行Maven install命令來進行更新。
Maven生命周期詳解
一、Maven的生命周期
Maven的生命周期就是對所有的構建過程進行抽象和統一。包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署和站點生成等幾乎所有的構建步驟。
Maven的生命周期是抽象的,即生命周期不做任何實際的工作,實際任務由插件完成,類似於設計模式中的模板方法。
二、三套生命周期
Maven有三套相互獨立的生命周期,分別是clean、default和site。每個生命周期包含一些階段(phase),階段是有順序的,後面的階段依賴於前面的階段。
1、clean生命周期:清理項目,包含三個phase。
1)pre-clean:執行清理前需要完成的工作
2)clean:清理上一次構建生成的文件
3)post-clean:執行清理後需要完成的工作
2、default生命周期:構建項目,重要的phase如下。
1)validate:驗證工程是否正確,所有需要的資源是否可用。
2)compile:編譯項目的源代碼。
3)test:使用合適的單元測試框架來測試已編譯的源代碼。這些測試不需要已打包和布署。
4)Package:把已編譯的代碼打包成可發布的格式,比如jar。
5)integration-test:如有需要,將包處理和發布到一個能夠進行集成測試的環境。
6)verify:運行所有檢查,驗證包是否有效且達到質量標準。
7)install:把包安裝到maven本地倉庫,可以被其他工程作為依賴來使用。
8)Deploy:在集成或者發布環境下執行,將最終版本的包拷貝到遠程的repository,使得其他的開發者或者工程可以共享。
3、site生命周期:建立和發布項目站點,phase如下
1)pre-site:生成項目站點之前需要完成的工作
2)site:生成項目站點文檔
3)post-site:生成項目站點之後需要完成的工作
4)site-deploy:將項目站點發布到服務器
三、命令行和生命周期
各個生命周期相互獨立,一個生命周期的階段前後依賴。
舉例如下:
1、mvn clean
調用clean生命周期的clean階段,實際執行pre-clean和clean階段
2、mvn test
調用default生命周期的test階段,實際執行test以及之前所有階段
3、mvn clean install
調用clean生命周期的clean階段和default的install階段,實際執行pre-clean和clean,install以及之前所有階段
四、m2eclipse和生命周期
1、m2eclipse中預置的mvn命令
右鍵maven項目或pom.xml文件>Run As 可以看到預置的mvn命令
2、自定義mvn命令
單擊 上圖中的maven Build...,自定義命令 mvn clean install:
定義完成後,點擊maven Build,可以看到定義好的命令:
maven項目右鍵快捷方式,然後點擊Run As