您好,登錄后才能下訂單哦!
本篇內容介紹了“Androd Gradle模塊依賴替換如何使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我們在多模塊項目開發(fā)過程中,會遇到這樣的場景,工程里依賴了一個自己的或者其他同事的 aar
模塊,有時候為了開發(fā)調試方便,經常會把 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
,使用方式如下:
在 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) } }
在 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 } } } }
在 local.properties
里
moduleName=:test modulePath=../AndroidStudioProjects/TestProject/testModule
到這里就大功告成了,后續(xù)只需要在 local.properties
里開啟和關閉,即可實現(xiàn) aar
模塊本地依賴調試,提交代碼也不用去手動修改回 aar
依賴。
“Androd Gradle模塊依賴替換如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。