71 lines
3.6 KiB
Groovy
71 lines
3.6 KiB
Groovy
|
||
//注: 从CC 1.x升级到CC 2.x的用户,用此文件替换原来的cc-settings.gradle的同时,需要在根目录build.gradle中将插件地址按照如下方式更换一下:
|
||
// classpath 'com.billy.android:autoregister:x.x.x' -> classpath 'com.billy.android:cc-register:x.x.x'
|
||
//cc-register extension:
|
||
// 功能介绍:
|
||
// 完成组件、拦截器及跨进程json解释器等CC库自身需要的自动注册功能
|
||
// 支持新增自定义的其它自动注册功能,参考AutoRegister,用法参考cc-settings-demo.gradle
|
||
|
||
// 为使用此脚本的模块应用 Android library 插件(如果还没有应用)
|
||
if (!project.plugins.hasPlugin('com.android.library') && !project.plugins.hasPlugin('com.android.application')) {
|
||
project.apply plugin: 'com.android.library'
|
||
}
|
||
|
||
// 初始化 runAsApp 属性(CC 框架需要,默认 false,表示作为 library 模块)
|
||
if (!project.ext.has('runAsApp')) {
|
||
project.ext.runAsApp = false
|
||
}
|
||
|
||
// 注意:cc-register 插件与 AGP 8.x 不兼容,暂时禁用自动注册功能
|
||
// 如果项目需要自动注册功能,需要手动注册组件或等待插件更新
|
||
// 检查 AGP 版本,只在兼容的版本下应用插件
|
||
def agpVersion = project.rootProject.ext.has('agp_version') ? project.rootProject.ext.agp_version : 'unknown'
|
||
def agpMajorVersion = agpVersion != 'unknown' ? (agpVersion.split('\\.')[0] as int) : 8
|
||
|
||
if (agpMajorVersion < 8) {
|
||
// AGP 7.x 及以下版本,可以正常使用 cc-register
|
||
project.apply plugin: 'cc-register'
|
||
} else {
|
||
// AGP 8.x 及以上版本,cc-register 不兼容,跳过插件应用
|
||
println "警告: cc-register 插件与 AGP ${agpVersion} 不兼容,已跳过自动注册功能"
|
||
println "CC 库仍会正常添加,但组件需要手动注册"
|
||
}
|
||
|
||
// 添加 CC 库依赖
|
||
// 注意:由于此脚本在 Android 插件应用之前执行,需要延迟到 afterEvaluate 中添加依赖
|
||
project.afterEvaluate {
|
||
// 尝试使用 api,如果不存在则使用 implementation
|
||
def configName = 'implementation'
|
||
try {
|
||
project.configurations.getByName('api')
|
||
configName = 'api'
|
||
} catch (Exception e) {
|
||
configName = 'implementation'
|
||
}
|
||
project.dependencies.add(configName, "com.billy.android:cc:2.1.5")
|
||
}
|
||
|
||
//此文件是作为组件化配置的公共gradle脚本文件,在每个组件中都apply此文件,下载到工程根目录后,可以在下方添加一些自己工程中通用的配置
|
||
// 可参考cc-settings-demo.gradle
|
||
// 例如:
|
||
// 1. 添加全局拦截器、下沉的公共类库等一些公共基础库的依赖;
|
||
// 2. 添加自定义的通过cc-register实现的自动注册配置
|
||
// 3. 开启app内部多进程支持
|
||
// 4. 其它公共配置信息
|
||
|
||
//开启app内部多进程组件调用时启用下面这行代码
|
||
//文档地址:https://luckybilly.github.io/CC-website/#/manual-multi-process
|
||
//ccregister.multiProcessEnabled = true
|
||
|
||
//开启app内部多进程组件调用时,可以启用下方的配置排除一些进程
|
||
//ccregister.excludeProcessNames = [':pushservice', ':processNameB']
|
||
|
||
//按照如下格式添加自定义注册项,可添加多个(也可每次add一个,add多次)
|
||
// 文档地址: https://luckybilly.github.io/CC-website/#/manual-IActionProcessor
|
||
//ccregister.registerInfo.add([
|
||
// //在自动注册组件的基础上增加:自动注册组件B的processor
|
||
// 'scanInterface' : 'com.billy.cc.demo.component.b.processor.IActionProcessor'
|
||
// , 'codeInsertToClassName' : 'com.billy.cc.demo.component.b.ComponentB'
|
||
// , 'codeInsertToMethodName' : 'initProcessors'
|
||
// , 'registerMethodName' : 'add'
|
||
//]) |