idea工具maven projects里面有9種生命周期,今天剛好遇到,順便分享下自己的理解。生命周期是包含在一個項目構建中的一系列有序的階段。
( 注在maven命令框中輸入 mvn -U idea:idea將繼續下載未下載完整的依賴,超級好用)
最常用的兩種打包方法:
一:clean,package(如果報錯,很可能就是jar依賴的問題)
二:clean,install
9種生命周期:
clean,
清理,在進行真正的構建之前進行一些清理工作,移除所有上一次構建生成的文件。執行該命令會刪除項目路徑下的target文件,但是不會刪除本地的maven倉庫已經生成的jar文件。
validate,
驗證,驗證工程是否正確,所需的信息是否完整。
compile,
編譯源碼,編譯生成class文件,編譯命令,只編譯選定的目標,不管之前是否已經編譯過,會在你的項目路徑下生成一個target目錄,在該目錄中包含一個classes文件夾,里面全是生成的class文件及字節碼文件。
test,
單元測試,測試。
package,
打包,將工程文件打包為指定的格式,例如JAR,WAR等。這個命令會在你的項目路徑下一個target目錄,並且擁有compile命令的功能進行編譯,同時會在target目錄下生成項目的jar/war文件。如果a項目依賴於b項目,打包b項目時,只會打包到b項目下target下,編譯a項目時就會報錯,因為找不到所依賴的b項目,說明a項目在本地倉庫是沒有找到它所依賴的b項目,這時就用到install命令了
verify,
核實,檢查package是否有效、符合標准。
install,
安裝至本地倉庫,將包安裝至本地倉庫,以讓其它項目依賴。該命令包含了package命令功能,不但會在項目路徑下生成class文件和jar包,同時會在你的本地maven倉庫生成jar文件,供其他項目使用(如果沒有設置過maven本地倉庫,一般在用戶/.m2目錄下。如果a項目依賴於b項目,那么install b項目時,會在本地倉庫同時生成pom文件和jar文件,解決了上面打包package出錯的問題)
build:功能類似compile,只是只對整個項目進行編譯。
site,
站點,生成項目的站點文檔
deploy,
復制到遠程倉庫
build和compile的區別
Compile:只編譯選定的目標,不管之前是否已經編譯過。
Build:是對整個工程進行徹底的重新編譯,而不管是否已經編譯過。Build過程往往會生成發布包,這個具體要看對IDE的配置了,Build在實際中應用很少,因為開發時候基本上不用,發布生產時候一般都用ANT等工具來發布。Build因為要全部編譯,還要執行打包等額外工 作,因此時間較長。
idea重新映入jar
由於依賴包更新,需要重新引入,但是刪掉舊包之后重新構建卻無法自動下載新包,即使是重啟idea也不會自動下載。其實重新下載的方法很簡單,右鍵項目->maven->Reimport即可