idea工具maven projects裡面有9種生命周期,今天剛好遇到,順便分享下自己的了解。生命周期是包含在一個項目建構中的一系列有序的階段。
最常用的兩種打包方法:
一: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即可。如下圖: