目錄
目錄
前言:
當一個獨立的maven項目不斷擴大,我們會增加人手,並將項目按模塊或者按層次進行劃分,由不同的人進行負責相應的模塊或者層次。這裏就需要對項目進行拆分,拆分之後又需要一個可以一次構建所有拆分項目的“總項目”。 那麼,總項目就是聚合了所有子項目的傢伙,這就是聚合的概念。
當一個公司從原先的一個項目,擴展到了多個項目,開始有了多個團隊,A團隊負責A項目,B團隊負責B項目。每個項目技術負責人雖然使用相同的Java技術與框架,但可能各自使用了不同的版本。甚至說使用了Java技術的不同框架。那麼對於公司方面來說,整體的維護和管理是很不方便的。 如果有那麼一個標準,類似於Java中的超類概念,每個項目團隊的項目就是這個超類的子類實現,子類使用超類規定的方法並可以有自己的拓展。 那麼從整體來講,這樣就不會那麼混亂。 這就是繼承的概念。(當然繼承的好處不止這麼一點。)
maven作爲依賴管理的工具,同樣提供了這樣的功能,就是pom的繼承。公司提供標準的pom,規定了Spring使用的版本,以及相關的依賴版本,並且有公司的技術大牛負責處理各個依賴的版本衝突問題。每個項目組的項目只要繼承這個大牛pom,不需要關係依賴版本,衝突等問題,從而專注以業務開發。(其實SpringBoot就是免費的大牛pom,而且還不僅僅提供了pom)
實現一個聚合項目:
聚合其實是可以和繼承分開使用的, 但如果說,他們聚合在一起,a模塊使用4.0.0版本的Spring,b模塊使用5.0.0版本的Spring,那麼這就會產生很多意想不到的衝突和事件。
所以,常常來說,聚合會與繼承一起使用。 那麼接下來,我簡單演示一下使用Eclipse快速搭建一個聚合項目
- p 父項目 (聚合)
- a 業務核心
- b 系統web
1、創建p項目
2、修改packaging類型爲pom
(這個項目作爲被集成和聚合任務,不需要有自己的業務代碼。)
3、添加業務核心a項目(作爲後端)
選中p項目,點擊new,添加一個Maven Module
4、添加web項目。作爲前端的開發。
其他的操作一樣,maven骨架選擇webapp。
5、整體項目大綱
這樣我們就可以單獨的構建a b 以及 整體的構建p。
6、b項目引入a依賴。
b作爲前端,需要與後端核心代碼進行交互,即需要引入a依賴
對於前端開發來說, 他只需要下載b,進行開發,如果後端提供了新版本,前端只需要修改version即可捕獲,又或者使用SNAPSHOT,每次更新最新的a項目代碼。
7、a項目的開發與單元測試
對於普通的小公司來說,他們的後端開發都是通過web頁面進行測試代碼的正確性的,其實這樣並不高效。應該使用單元測試。
若引入了單元測試,作爲後端開發,a項目無需引入b,只要完成業務邏輯,實現單元測試,完成代碼覆蓋。那麼後端就與前端分離了。
8、拓展
a的後端還可以進行拆分,具體的可以根據業務的需求,項目的分工進行,此處不再贅述。
源碼:
https://github.com/bof-jangle/p
ssm項目結構+前端交互 的webapp 源碼: