首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

焦点!Android Gradle模块依赖替换使用技巧

2022-06-23 06:01:14 来源 : 软件开发网

目录

背景

解决


(资料图片)

步骤1:

步骤2:

步骤3:

背景

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

解决

一开始我们通过在 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依赖。

以上就是Android Gradle模块依赖替换使用技巧的详细内容,更多关于Android Gradle模块依赖替换的资料请关注软件开发网其它相关文章!

标签: 相关文章 软件开发 大功告成

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28