天天看點

Idea 裡面的Maven Lifecycle 各個階段的含義

idea maven下面的lifecycle如圖所示:

Idea 裡面的Maven Lifecycle 各個階段的含義

每個指令的詳細作用:

(1)clean

翻譯:打掃清理,最直接的就是作用于橙色的target目錄。在進行真正的建構之前進行一些清理工作,移除所有上一次建構生成的檔案。執行該指令會删除項目路徑下的target檔案,但是不會删除本地的maven倉庫已經生成的jar檔案。

清理前:

Idea 裡面的Maven Lifecycle 各個階段的含義

 清理後:

Idea 裡面的Maven Lifecycle 各個階段的含義

 (2)validate:翻譯:驗證。驗證工程正确性,所需資訊完整否。

(3)compile

翻譯:編譯。大夥都知道java的識别檔案是.class,編譯生成class檔案,編譯指令,隻編譯標明的目标,不管之前是否已經編譯過,會在你的項目路徑下生成一個target目錄,在該目錄中包含一個classes檔案夾,裡面全是生成的class檔案及位元組碼檔案。與build差別:隻編譯標明的目标,不管之前是否已經編譯過。

編譯前(清理後):

Idea 裡面的Maven Lifecycle 各個階段的含義

編譯後:

Idea 裡面的Maven Lifecycle 各個階段的含義

 (4)test:翻譯:測試。單元測試。

(5)package

翻譯:打包。将工程檔案打包為指定的格式,例如JAR,WAR等(看你項目的pom檔案,裡面的packaging标簽就是來指定打包類型的)。這個指令會在你的項目路徑下一個target目錄,并且擁有compile指令的功能進行編譯,同時會在target目錄下生成項目的jar/war檔案。如果a項目依賴于b項目,打包b項目時,隻會打包到b項目下target下,編譯a項目時就會報錯,因為找不到所依賴的b項目,說明a項目在本地倉庫是沒有找到它所依賴的b項目,這時就用到install指令。

打包前

Idea 裡面的Maven Lifecycle 各個階段的含義

 打包後:

Idea 裡面的Maven Lifecycle 各個階段的含義

(6) verify:翻譯:核實。主要是對package檢查是否有效、符合标準。

(7)install

翻譯:安裝。将包安裝至本地倉庫,以讓其它項目依賴。該指令包含了package指令功能,不但會在項目路徑下生成class檔案和jar包,同時會在你的本地maven倉庫生成jar檔案,供其他項目使用(如果沒有設定過maven本地倉庫,一般在使用者/.m2目錄下。如果a項目依賴于b項目,那麼install b項目時,會在本地倉庫同時生成pom檔案和jar檔案,解決了上面打包package出錯的問題)。

Idea 裡面的Maven Lifecycle 各個階段的含義
Idea 裡面的Maven Lifecycle 各個階段的含義

(8)site:翻譯:站點。生成項目的站點文檔。

(9)deploy:翻譯:配置部署。複制到遠端倉庫。

繼續閱讀