基於AS開發專案,對於特定的功能模組,往往抽取成獨立的庫進行管理,然後上傳到Marven庫中,通過Gradle依賴的方式進行引用。
其優勢體現在:
1,獨立的Git專案庫,模組功能,及職責界定清晰;
2,外部使用方一般無須關注此Git專案庫的具體實現和邏輯細節,只需按照對應的對外暴露的方式呼叫即可;
3,一般此類Git專案庫有專門的管理員,和技術人員實現其功能的迭代和維護更新,以及對應的版本管理;
4,使用方只是通過Gradle引用, 此Git專案庫在安全性上有進一步保障。
但在實際開發中,有時候需要對此Git專案庫進行修改,對應需要和主工程進行聯調測試等,此時如果每次修改此Git專案庫程式碼後,更新到Marven庫,然後再在主工程更新對應的marven版本依賴,無論是實現過程,還是實際除錯等,都過於繁瑣。
Gradle提供了特定的語法結構,可以在除錯時直接類似於引入此專案其他模組的方式引入此類獨立Git庫。
具體語法結構為:
settings.gradle檔案:
include ':cornlog'
project(':cornlog').projectDir = new File('../CornLogSDK/cornlogsdk')
複製程式碼
主工程build.gradle檔案:
dependencies {
......
api(project(':cornlog')) {
exclude group: 'com.abc.mlog', module: 'mlog'
}
.......
}
複製程式碼
sync後,可以發現此獨立Git專案庫會出現在當前主工程左側專案導航檢視中,可以直接修改、編譯、除錯等。類似於主工程專案內其他獨立模組效果。
但Git commit等,仍然是分開的,當前主工程的Git提交依然只對主工程有效,需要提交此獨立Git專案庫需要到其獨立Git本地工程中提交即可(程式碼與主工程檢視中修改此獨立Git專案庫程式碼是同一份)。