鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 項目模塊化
依賴管理實戰(zhàn)
配置遠(yuǎn)程倉庫
安裝Gradle
簡介
項目自動化簡介
配置子項目
Gradle強(qiáng)大的特性
自動化測試
簡介
掌握構(gòu)建生命周期
使用命令行操作
構(gòu)建Java項目
管理任務(wù)
構(gòu)建工具
連續(xù)傳遞的特性
用Gradle開發(fā)Web項目
聲明依賴
構(gòu)建塊
簡介
測試Java應(yīng)用
java構(gòu)建工具
為什么選擇Gradle
拆分項目文件
單元測試
多項目打包
Gradle 起步
介紹這個Gradle項目
簡介
自定義腳本
Gradle包裝器
簡要概述依賴管理
項目模塊化

項目模塊化

在企業(yè)項目中,包層次和類關(guān)系比較負(fù)責(zé),把代碼拆分成模塊是一個比較困難的任務(wù),因為這需要你清晰的劃分功能的邊界,比如把業(yè)務(wù)邏輯和數(shù)據(jù)持久化拆分開來。

解耦和聚合

但你的項目符合高內(nèi)聚低耦合時,模塊化就變得很容易,這是一條非常好的軟件開發(fā)實踐。一個很好的模塊化的例子就是Spring框架,spring框架提供了很多服務(wù),比如MVC web框架、事務(wù)管理器、JDBC數(shù)據(jù)庫連接等,下圖展示了Spring3.x的模塊間的關(guān)系:

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag32.png" alt="" />

看起來這個架構(gòu)非常的龐大嚇人,定義了非常多的組件相互間的依賴關(guān)系比較復(fù)雜,在實際使用過程中你并不需要導(dǎo)入整個框架到你的項目中,你可以選擇你需要使用的服務(wù)。幸運(yùn)的是模塊之間的依賴都是通過元數(shù)據(jù)指定的,Gradle的依賴管理很容易解析它的傳遞依賴。

區(qū)分模塊

下面我們還是繼續(xù)之前那個ToDo的例子,我們來把它拆分為多個模塊。

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag33.png" alt="" /> http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag34.png" alt="" />

你已經(jīng)根據(jù)類的功能把它們拆分成一個個包,基本上分為下面幾個功能:

  • 模型: 用來表示數(shù)據(jù)
  • 倉庫: 檢索和存儲數(shù)據(jù)
  • Web: 用來處理HTTP請求、渲染頁面的Web組件

雖然這是一個非常小的項目,這些模塊之間也有依賴關(guān)系:

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag35.png" alt="" />

重構(gòu)成模塊

現(xiàn)在很容易把存在的項目結(jié)構(gòu)重構(gòu)成幾個模塊,對于每個模塊,使用合適的名稱創(chuàng)建一個子目錄,把相關(guān)的代碼移動到里面。默認(rèn)的源代碼路徑src/main/java還是毫發(fā)無損,Web模塊需要默認(rèn)的web應(yīng)用源代碼目錄src/main/webapp,下面顯示了模塊化的項目布局:

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag36.png" alt="" /> http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag37.png" alt="" />

上一篇:Gradle強(qiáng)大的特性下一篇:簡介