Files
mendian/cc-settings-2.gradle

71 lines
3.6 KiB
Groovy
Raw Normal View History

2025-12-26 15:36:42 +08:00
//注: 从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'
//])