最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android?Gradle模塊依賴替換使用技巧

 更新時間:2022年06月22日 17:47:28   作者:汪海游龍  
這篇文章主要為大家介紹了Android?Gradle模塊依賴替換使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

背景

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

解決

一開始我們通過在 appbuild.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:

appbuild.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 里開啟和關閉,即可實現(xiàn) aar 模塊本地依賴調(diào)試,提交代碼也不用去手動修改回 aar 依賴。

以上就是Android Gradle模塊依賴替換使用技巧的詳細內(nèi)容,更多關于Android Gradle模塊依賴替換的資料請關注腳本之家其它相關文章!

相關文章

  • Android kotlin RecyclerView遍歷json實現(xiàn)列表數(shù)據(jù)的案例

    Android kotlin RecyclerView遍歷json實現(xiàn)列表數(shù)據(jù)的案例

    這篇文章主要介紹了Android kotlin RecyclerView遍歷json實現(xiàn)列表數(shù)據(jù)的案例,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • Kotlin協(xié)程Context應用使用示例詳解

    Kotlin協(xié)程Context應用使用示例詳解

    這篇文章主要為大家介紹了Kotlin協(xié)程Context應用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Android屏幕鎖屏彈窗的正確姿勢DEMO詳解

    Android屏幕鎖屏彈窗的正確姿勢DEMO詳解

    本文給大家分享android屏幕鎖屏彈窗的正確姿勢DEMO詳解,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • Android Activity 不能被截屏的解決方法

    Android Activity 不能被截屏的解決方法

    下面小編就為大家分享一篇Android Activity 不能被截屏的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Flutter繪制之路徑聯(lián)合詳解

    Flutter繪制之路徑聯(lián)合詳解

    在Flutter繪制中,path路徑可謂是繪制中的核心,通過path路徑可以繪制出任意的二維圖形,所以本文就來和大家聊聊Flutter中路徑聯(lián)合的相關知識,感興趣的可以了解一下
    2023-06-06
  • Android 將文件下載到指定目錄的實現(xiàn)代碼

    Android 將文件下載到指定目錄的實現(xiàn)代碼

    本文通過實例代碼給大家介紹了android將文件下載到指定目錄的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-06-06
  • Flutter Flar動畫使用實戰(zhàn)示例

    Flutter Flar動畫使用實戰(zhàn)示例

    這篇文章主要為大家介紹了Flutter Flar動畫使用實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Android scrollview如何監(jiān)聽滑動狀態(tài)

    Android scrollview如何監(jiān)聽滑動狀態(tài)

    這篇文章主要介紹了Android scrollview監(jiān)聽滑動狀態(tài)的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Android仿微信布局的實現(xiàn)示例

    Android仿微信布局的實現(xiàn)示例

    本文主要介紹了Android仿微信布局的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • Android?studio實現(xiàn)單選按鈕

    Android?studio實現(xiàn)單選按鈕

    這篇文章主要為大家詳細介紹了Android?studio實現(xiàn)單選按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論

宁明县| 得荣县| 长兴县| 合水县| 高要市| 托克逊县| 兴义市| 濉溪县| 阳山县| 报价| 上高县| 缙云县| 扬州市| 隆回县| 项城市| 闽清县| 五寨县| 永登县| 民权县| 葫芦岛市| 清徐县| 光泽县| 巴林左旗| 阳城县| 东阿县| 门头沟区| 周至县| 武平县| 宁阳县| 沾益县| 乌审旗| 河北区| 敖汉旗| 嫩江县| 竹山县| 兴国县| 梓潼县| 全州县| 呈贡县| 登封市| 申扎县|