【Android Gradle 插件】Android 依赖管理 ③ ( dependencies 依赖配置 | Project#dependencies 函数分析 | 自定义依赖配置 )
文章目录
一、dependencies 依赖配置范围
Gradle 构建过程 中 , 依赖的 作用范围 是不同的 , 如 :
- 有的依赖只在 源码编译时使用 , 如 Android Gradle 插件 依赖 ;
- 有的依赖只在 开发时单元测试运行 , 如 单元测试依赖 ;
- 有的依赖需要 编译打包到 Apk 文件中 , 如 工程中的依赖库 ;
依赖配置 的 作用范围 是可以自定义的 , 在 Gradle 构建工具中 , 内置了如下几种依赖配置项 , 在 【Android Gradle 插件】Gradle 依赖管理 ⑩ ( dependencies 依赖配置项 configurations ) 博客中 , 提到了在 dependencies 依赖配置中 , Android Gradle Plugin 插件 和 Gradle 官方默认配置好了一批依赖配置项 , 如
- implementation
- api
- compileOnly
- runtimeOnly
- annotationProcessor
- lintChecks
- lintPublish
- apk ( 已废弃 )
- compile ( 已废弃 )
- provided ( 已废弃 )
上述依赖配置 apk , compile , provided 已废弃 ; 在 build,gradle 构建脚本 中的 dependencies 脚本块 中 , 可以使用上述 依赖配置 ;
Android 依赖参考文档 : https://developer.android.google.cn/studio/build/dependencies
build,gradle 构建脚本 中的 dependencies 脚本块 依赖配置示例 :
dependencies {
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
二、Project#dependencies 函数分析
dependencies 是 Project 类中的函数 , Project#dependencies 函数原型 如下 :
/**
* <p>配置此项目的依赖项。
*
* <p>此方法针对此项目的{@linkDependencyHandler}执行给定的闭包。
* {@linkDependencyHandler}作为闭包的委托传递给闭包。
*
* <h3>示例:</h3>
* 请参阅文档 {@link DependencyHandler}
*
* @param configureClosure 用于配置依赖项的闭包。
*/
void dependencies(Closure configureClosure);
三、DependencyHandler#add 函数分析
dependencies 脚本块中的 implementation 配置 , 实际上调用的是 DependencyHandler#add 方法 ,
public interface DependencyHandler extends ExtensionAware {
/**
* 向给定配置添加依赖项。
*
* @param configurationName 配置的名称。
* @param dependencyNotation 依赖库名称。
*
* 依赖性表示法,在上述一种表示法中。
* @return 返回依赖项。
*/
@Nullable
Dependency add(String configurationName, Object dependencyNotation);
}
以 implementation 'androidx.appcompat:appcompat:1.5.1'
代码为例 , add 方法的
- 第一个参数是配置名称
"implementation"
, - 第二个参数是配置的依赖库名称
'androidx.appcompat:appcompat:1.5.1'
;
四、自定义依赖配置
参考 【Android Gradle 插件】Gradle 依赖管理 ③ ( build.gradle#dependencies 依赖分组 | configurations 自定义依赖分组 ) , 依赖配置 是可以自定义的 , 如 implementation 依赖配置 , 在 build.gradle 构建脚本中 , 可以自定义依赖配置 , 在 configurations 中 , 可以自定义依赖配置 ;
定义了依赖配置后 ,
configurations {
hello {
}
}
可以直接在 dependencies 脚本块中使用上述依赖配置 ;
dependencies {
hello 'com.android.support:appcompat-v7:28.0.0'
}
相关文章
- 加密狗android,Android系统加密狗的设计与实现
- android 空间分享到朋友圈,Android开发之微信分享到好友,朋友圈
- android deeplink流程,Android Deeplink探究[通俗易懂]
- mac 电脑android环境变量设置,mac上Android环境变量配置[通俗易懂]
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)「建议收藏」
- 2018年Unity结合Android SDK下载安装及配置教程
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
- android系统中toast是什么_Android个人资料简单布局
- 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
- 【Android 逆向】修改 Android 系统文件 ( default.prop 配置信息 | 修改 default.prop 配置信息文件 )
- 【Android Gradle 插件】ProductFlavor#externalNativeBuild配置 与 AppExtension#externalNativeBuild 配置区别
- 【Android Gradle 插件】SigningConfig 签名配置 ① ( SigningConfig 签名配置位置 | storeFile 配置 | storePassword 配置 )
- 【Android Gradle 插件】SigningConfig 签名配置 ③ ( storeType 配置 | v1SigningEnabled / v2SigningEnabled 配置 )
- 【Android Gradle 插件】AndroidSourceSets 配置 ③ ( aidl 配置 | assets 配置 | compileConfigurationName 配置 )
- 【Android Gradle 插件】DexOptions 配置 ④ ( additionalParameters 属性配置 | 使用 BuildType 配置多 dex 机制 )
- 【Android Gradle 插件】LintOptions 配置 ② ( abortOnError 配置 | 手动执行 lint 检查并生成 lint-result.html 检查报告 )
- 【Android Gradle 插件】LintOptions 配置 ⑩ ( textReport 属性配置 | textOutput 属性配置 | warningsAsErrors 属性配置 )
- 【Android Gradle 插件】PackagingOptions 配置 ① ( BaseExtension#packagingOptions 配置 | PackagingOptions 配置 )
- 【Android Gradle 插件】 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )
- 【Android Gradle 插件】TestOptions 配置 ① ( BaseExtension#testOptions 配置 | TestOptions 配置简介 )
- 【Android Gradle 插件】TestOptions 配置 ③ ( TestOptions#unitTests 脚本块配置 | UnitTestOptions 配置简介 )
- 【Android Gradle 插件】Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
- 【Android Gradle 插件】自定义 Gradle 插件模块 ③ ( Gradle 插件模块发布配置 | Windows 本地 Maven 仓库地址 | 将插件上传到本地 Maven 仓库 )
- 【Android Gradle 插件】Gradle 构建工具简介 ① ( Gradle 环境配置 | 官网下载 Gradle 软件包 | 在本地用户目录下查找 | 配置 Gradle 环境变量 )
- 【Android Gradle 插件】Gradle 构建工具简介 ② ( Android 项目构建打包流程 | 构建工具发展 -> 手动配置 -> Ant -> Maven -> Gradle )
- [android] 隐式意图的配置详解手机开发
- Android的ImageButton当显示Drawable图片时就不显示文字
- android自动安装apk代码实例(不使用apk安装器安装)