当前位置:网站首页>Androd Gradle模块依赖替换如何使用

Androd Gradle模块依赖替换如何使用

2022-06-23 12:53:00 亿速云

Androd Gradle模块依赖替换如何使用

本篇内容介绍了“Androd Gradle模块依赖替换如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

背景

我们在多模块项目开发过程中,会遇到这样的场景,工程里依赖了一个自己的或者其他同事的 aar 模块,有时候为了开发调试方便,经常会把 aar 改为本地源码依赖,开发完毕并提交的时候,会再修改回 aar 依赖,这样就会很不方便,开发流程图示如下:

Androd Gradle模块依赖替换如何使用

解决

一开始我们通过在 appbuild.gradle 里的 dependency 判断如果是需要本地依赖的 aar,就替换为 implementation project 依赖,伪代码如下:

dependencies {    if(enableLocalModule) {        implementation 'custom:test:0.0.1'    } else {        implementation project(path: ':test')    }}

这样就可以不用每次提交代码还要修改回 aar 依赖,但是如果其他模块如果也依赖了该 aar 模块,就会出现问题,虽然可以继续修改其他模块里的依赖方式,但是这样就会有侵入性,而且不能彻底解决问题,仍然有可能出现本地依赖和 aar 依赖的代码不一致问题。

Gradle 官方针对这种场景提供了更好的解决方式 DependencySubstitution,使用方式如下:

步骤1:

settting.gradle,添加如下代码:

// 加载本地 moduleif (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=:testmodulePath=../AndroidStudioProjects/TestProject/testModule

到这里就大功告成了,后续只需要在 local.properties 里开启和关闭,即可实现 aar 模块本地依赖调试,提交代码也不用去手动修改回 aar 依赖。

“Androd Gradle模块依赖替换如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

原网站

版权声明
本文为[亿速云]所创,转载请带上原文链接,感谢
https://www.yisu.com/zixun/721479.html

随机推荐