普通項目與 maven項目的區別:
如果有多個項目都是傳統的SSM框架整合的項目,那麼需要在每個項目中都放置一套 SSM 框架的 jar 包。
如果是 Maven管理的SSM工程,如果有多個項目,那麼只需要一套 SSM 框架的jar包,實際項目中只用放置 jar 包的座標即可。
Maven工程拆分:Maven解決代碼可重用和便於維護問題
Maven可以把一個完整的項目,分成不同的獨立模塊,這些模塊都有各自獨立的座標,哪個地方需要其中某個模塊,就直接引用該模塊座標即可(維護一份代碼即可)。如果公司開發一個新的項目,首先我們考慮的不是 dao 、service、utils、domain如何編寫,而是考慮 dao、service、utils、domain這些模塊是否已經存在,如果存在就直接引用。
Maven工程聚合:
我們可以把拆分零散的模塊聚合在一起編寫一個完整的項目,這就是maven聚合。
Maven父子工程創建
父工程創建:父工程的主要用途是 管理 jar 包的座標。
父工程只需要 pom.xml 文件,可以刪除 src 目錄
創建子工程(模塊):
創建 dao 子模塊,右鍵父工程,選擇 New > Module
dao模塊不需要與頁面進行交互,即是普通 java 工程就可以,所以不需要使用骨架創建(不勾選 Create from archetype)
創建 service 子模塊,右鍵父工程,選擇 New > Module
service 模塊不需要與頁面進行交互,即是普通 java 工程就可以,所以不需要使用骨架創建(不勾選 Create from archetype)
創建 web子模塊,右鍵父工程,選擇 New > Module
web 模塊需要與頁面進行交互,所以需要使用骨架創建(勾選 Create from archetype),選擇 maven-archetype-webapp
到此 maven 父子工程創建完成,當然實際項目中會有許多細分的子模塊需要創建。
工程與模塊的區別、聯繫
區別
工程不等於完整的項目,模塊也不等於完整的項目。一個完整的項目看的是代碼,如果代碼完整就可以說這是一個完整的項目,和此項目是工程和模塊沒有關係。
工程天生只能使用自己內部的資源,工程天生是獨立的。後天可以和其他工程或模塊建立關聯關係。
模塊天生不是獨立的,模塊天生是屬於父工程的,模塊一旦創建,所有父工程的資源都可以使用。
聯繫
父子工程之間,子模塊天生繼承父工程,可以使用父工程所有資源。
子模塊之間天生是沒有任何關係的。
父子工程之間不用建立關係,繼承關係是先天的,不需要手動建立。
平級之間的引用叫做依賴,依賴不是先天的,依賴是需要後天建立的。