以下僅為個人實踐總結做記錄,如有錯誤還望指出。
打包方式:
pom-------一般為父工程,用來管理子模塊。
jar---------一般為子模塊,打包方式為jar只會把該模塊自身的java代碼打成一個jar包,開發過程中引用到第三方jar不會包含進去。
war-------一般為子模塊的web模塊,打包方式為war會把該模塊自身的java代碼打成一個jar包,同時會把開發過程中pom文件中引用到的第三方jar也打到war中。
打包方式為pom的模塊為父模塊,用來管理子模塊。因此對父模塊的maven命令會對其依賴的子模塊若有依賴順序(子模塊與子模塊之間的依賴順序),按依賴順序依次執行。方便了項目的關聯不需要一個一個模塊進行同樣的操作,且具有很好的擴展性,可拆分性。建議創建maven項目時,以聚合項目(擁有父模塊)為好。
為什么打包方式為war包時會把pom文件中引用到第三方jar也包含進去,而打包方式為jar時就不會?
打包方式為jar說明該模塊最終只會作為整個工程中的一部分即一個jar包。
打包方式為war說明該模塊是整個工程的結束部分,會把其他模塊都包含進來形成一個完整的工程(控制整個工程的目錄層級關系),故會把第三方引用到的jar也打進來。