這是我idea maven下面的lifecycle
兩種最常用打包方法:
- 1.先 clean,然后 package
- 2.先 clean,然后install
每個命令的詳細作用:
- clean:翻譯:打掃清理,最直接的就是作用於橙色的target目錄。在進行真正的構建之前進行一些清理工作,移除所有上一次構建生成的文件。執行該命令會刪除項目路徑下的target文件,但是不會刪除本地的maven倉庫已經生成的jar文件。
- validate:翻譯:驗證。驗證工程正確性,所需信息完整否。
- compile:翻譯:編譯。大伙都知道java的識別文件是.class,編譯生成class文件,編譯命令,只編譯選定的目標,不管之前是否已經編譯過,會在你的項目路徑下生成一個target目錄,在該目錄中包含一個classes文件夾,里面全是生成的class文件及字節碼文件。與build區別:只編譯選定的目標,不管之前是否已經編譯過。
- test:翻譯:測試。單元測試。
- package:翻譯:打包。將工程文件打包為指定的格式,例如JAR,WAR等(看你項目的pom文件,里面的packaging標簽就是來指定打包類型的)。這個命令會在你的項目路徑下一個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,區別是對整個項目進行編譯。與compile區別及特點:是對整個工程進行徹底的重新編譯,而不管是否已經編譯過。Build過程往往會生成發布包,這個具體要看對IDE的配置了,Build在實際中應用很少,因為開發時候基本上不用,發布生產時候一般都用ANT等工具來發布。Build因為要全部編譯,還要執行打包等額外工 作,因此時間較長。
- site:翻譯:站點。生成項目的站點文檔。
- deploy:翻譯:配置部署。復制到遠程倉庫。
參考網站:https://blog.csdn.net/qq_38374562/article/details/103967129