Android?Gradle模塊依賴替換使用技巧
背景
我們在多模塊項目開發(fā)過程中,會遇到這樣的場景,工程里依賴了一個自己的或者其他同事的 aar 模塊,有時候為了開發(fā)調(diào)試方便,經(jīng)常會把 aar 改為本地源碼依賴,開發(fā)完畢并提交的時候,會再修改回 aar 依賴,這樣就會很不方便,開發(fā)流程圖示如下:

解決
一開始我們通過在 app 的 build.gradle 里的 dependency 判斷如果是需要本地依賴的 aar,就替換為 implementation project 依賴,偽代碼如下:
dependencies {
if(enableLocalModule) {
implementation 'custom:test:0.0.1'
} else {
implementation project(path: ':test')
}
}
這樣就可以不用每次提交代碼還要修改回 aar 依賴,但是如果其他模塊如果也依賴了該 aar 模塊,就會出現(xiàn)問題,雖然可以繼續(xù)修改其他模塊里的依賴方式,但是這樣就會有侵入性,而且不能徹底解決問題,仍然有可能出現(xiàn)本地依賴和 aar 依賴的代碼不一致問題。
Gradle 官方針對這種場景提供了更好的解決方式 DependencySubstitution,使用方式如下:
步驟1:
在 settting.gradle,添加如下代碼:
// 加載本地 module
if (file("local.properties").exists()) {
def properties = new Properties()
def inputStream = file("local.properties").newDataInputStream()
properties.load( inputStream )
def moduleName = properties.getProperty("moduleName")
def modulePath = properties.getProperty("modulePath")
if (moduleName != null && modulePath != null) {
include moduleName
project(moduleName).projectDir = file(modulePath)
}
}
步驟2:
在 app 的 build.gradle 添加以下代碼
configurations.all {
resolutionStrategy.dependencySubstitution.all { DependencySubstitution dependency ->
// use local module
if (dependency.requested instanceof ModuleComponentSelector && dependency.requested.group == "custom") {
def targetProject = findProject(":test")
if (targetProject != null) {
dependency.useTarget targetProject
}
}
}
}
步驟3:
在 local.properties 里
moduleName=:test modulePath=../AndroidStudioProjects/TestProject/testModule
到這里就大功告成了,后續(xù)只需要在 local.properties 里開啟和關(guān)閉,即可實現(xiàn) aar 模塊本地依賴調(diào)試,提交代碼也不用去手動修改回 aar 依賴。
以上就是Android Gradle模塊依賴替換使用技巧的詳細內(nèi)容,更多關(guān)于Android Gradle模塊依賴替換的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android kotlin RecyclerView遍歷json實現(xiàn)列表數(shù)據(jù)的案例
這篇文章主要介紹了Android kotlin RecyclerView遍歷json實現(xiàn)列表數(shù)據(jù)的案例,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08
Kotlin協(xié)程Context應(yīng)用使用示例詳解
這篇文章主要為大家介紹了Kotlin協(xié)程Context應(yīng)用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
Android scrollview如何監(jiān)聽滑動狀態(tài)
這篇文章主要介紹了Android scrollview監(jiān)聽滑動狀態(tài)的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12

