在 DevUtils 工程(仓库布局契约 DEPS_ROOT=file/gradle、DEPS_MANIFEST=file/deps)中 新增或引用 Gradle 依赖时,先查 {DEPS_ROOT}/config.gradle、config_kotlin.gradle、 config_androidx.gradle 与 config_libs.gradle 是否已有坐标;按官方/非官方规则写入对应文件分组, 并在 {DEPS_MANIFEST}/deps_android.gradle 或 deps_project.gradle 中按现有风格引用。在用户要求添加 AndroidX、CameraX、Kotlin、Jetpack、第三方 Maven 依赖或修改 deps 清单时使用。
69
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
本 Skill 内凡出现依赖配置路径,均以下列符号展开;将来若抽成 project-gradle-* 或 fork 改目录,只改本表一行即可。
| 符号 | 当前值(DevUtils) | 说明 |
|---|---|---|
DEPS_ROOT | file/gradle | 坐标定义:ext.deps、ext.deps_lib、versions.gradle 等 |
DEPS_MANIFEST | file/deps | 业务侧聚合引用:deps_*.gradle |
常用文件(由契约展开)
| 符号路径 | 变量 | 用途 |
|---|---|---|
{DEPS_ROOT}/config.gradle | deps | 构建插件 build、dev 分组 |
{DEPS_ROOT}/config_kotlin.gradle | deps_kotlin | 官方 Kotlin / JetBrains 生态及 KTX |
{DEPS_ROOT}/config_androidx.gradle | deps_androidx | androidx.* Jetpack / Material 等官方库 |
{DEPS_ROOT}/config_libs.gradle | deps_lib | 非 Android 官方第三方库 |
{DEPS_ROOT}/versions.gradle | versions | ${versions.xxx} 集中版本号 |
{DEPS_MANIFEST}/deps_android.gradle | — | 引用 deps_kotlin.* / deps_androidx.*(Android 库 / 示例) |
{DEPS_MANIFEST}/deps_project.gradle | — | 引用 deps_lib.*(示例 / 第三方 lib 聚合) |
{DEPS_ROOT}/config.gradle 首部依次 apply 了 config_kotlin.gradle(ext.deps_kotlin)、config_androidx.gradle(ext.deps_androidx)、config_libs.gradle(ext.deps_lib),再定义 ext.deps(仅 build / dev);根工程 build.gradle 只需 apply config.gradle 即可加载全部 ext.deps*。任何新依赖必须先查是否已存在,禁止重复定义同一坐标。
升级已有 GAV 版本、多源校验写回 → Read project-gradle-third-party-version-upgrade/SKILL.md(沿用同一
DEPS_ROOT/DEPS_MANIFEST)。
写入 {DEPS_ROOT}/config_androidx.gradle(deps_androidx)/ config_kotlin.gradle(deps_kotlin)的 官方坐标 前,优先在下列站点核对 artifact 名、稳定版号、分组语义:
| 用途 | 链接 |
|---|---|
| AndroidX 版本总览(中文,推荐) | https://developer.android.com/jetpack/androidx/versions?hl=zh-cn |
| AndroidX 库浏览 | https://developer.android.com/jetpack/androidx/explorer |
| 各库 Release Notes | https://developer.android.com/jetpack/androidx/releases |
| 稳定渠道说明 | https://developer.android.com/jetpack/androidx/versions/stable-channel |
| 旧 Support → AndroidX 映射 | https://developer.android.com/jetpack/androidx/migrate/artifact-mappings |
{DEPS_ROOT}/config_androidx.gradle / config_kotlin.gradle 内 「Android 官方库」 区块注释已收录上表部分链接;查版本号以中文版总览页为准,与文件中各条目旁的 mvnrepository.com 链接交叉核对。
第三方 / 非官方库不在此页检索 → 使用 mvnrepository.com 或库方 GitHub,并写入 {DEPS_ROOT}/config_libs.gradle。
按优先级在 {DEPS_ROOT} 下四个坐标文件全文检索(建议对 artifact 名、group、已有 key 各搜一次):
| 文件 | 变量 | 用途 |
|---|---|---|
{DEPS_ROOT}/config.gradle | deps | 构建插件 build、dev 分组 |
{DEPS_ROOT}/config_kotlin.gradle | deps_kotlin | 官方 Kotlin / JetBrains 生态及相关 KTX |
{DEPS_ROOT}/config_androidx.gradle | deps_androidx | 官方 androidx.* / Material 等 |
{DEPS_ROOT}/config_libs.gradle | deps_lib | 非 Android 官方第三方库,按子分组组织 |
若已存在:跳到 第 4 步,只在本模块或 {DEPS_MANIFEST}/*.gradle 中增加 api / implementation / kapt 引用,不要再写一条相同 GAV 的配置。
deps / deps_kotlin / deps_androidx)在同时满足「官方」且语义属于下列范围时使用:
{DEPS_ROOT}/config_kotlin.gradle(deps_kotlin,顶层平铺 map):org.jetbrains.kotlin、org.jetbrains.kotlinx、org.jetbrains.dokka;与 Kotlin/JetBrains 生态强相关、且现有 deps_kotlin 里同类条目并列的 AndroidX KTX(若团队惯例放在 deps_kotlin 而非纯 deps_androidx,与文件内现有条目保持一致)。{DEPS_ROOT}/config_androidx.gradle(deps_androidx,顶层平铺 map):androidx.* Jetpack/AndroidX 构件;com.google.android.material:material 等与官方文档并列的 Material 组件(本仓库当前放在 deps_androidx);com.google.dagger:hilt-android* 等本文件已有先例的官方栈。{DEPS_ROOT}/config.gradle(deps)→ build 分组:Gradle 插件类坐标(与现有 kotlin_gradle_plugin 等并列)。{DEPS_ROOT}/config.gradle(deps)→ dev 分组:仅 io.github.afkt Dev 系列,勿把外部库塞入。CameraX(androidx.camera:*)属于 AndroidX 官方 → 新增键应放在 config_androidx.gradle 的 deps_androidx(除非仓库后续另有约定;以文件内同类 androidx.* 为准)。
{DEPS_ROOT}/config_libs.gradle(deps_lib)com.squareup、com.github.*、io.github.* 等)→ 放入 deps_lib。common、图片 image_widget、路由 router)。不要把明显不属于该分组的库硬塞进去。deps_lib 顶层新增一个子 map 键(命名风格与现有一致:小写 + 下划线,如 camera_kit),并在该块顶部用与全文件一致的 区块注释(// ===...=== + 简短中文说明)。{DEPS_ROOT}/versions.gradle 的关系config.gradle / config_kotlin.gradle / config_androidx.gradle / config_libs.gradle 首行均 apply from: versions.gradle(相对 {DEPS_ROOT})。若版本需多处复用或与 Kotlin 版本对齐,可像 kotlin-gradle-plugin 那样使用 ${versions.xxx};否则可直接写死版本号(与现有条目风格一致)。
参考 {DEPS_ROOT} 下两文件中已有行:
// https://mvnrepository.com/artifact/...camerax_camera2、camerax_lifecycle);同一库多模块多个 key 时保持前缀一致。DEPS_MANIFEST){DEPS_MANIFEST}/deps_android.gradle —— api deps_kotlin.<key>、api deps_androidx.<key>,需要处理器时用 kapt(与模块现有写法一致)。{DEPS_MANIFEST}/deps_project.gradle —— api deps_lib.<子分组>.<key>,并保留分组标题注释与简短中文/GitHub 说明。具体模块若直接写依赖而不走 deps_kotlin/deps_androidx/deps_lib,仍应使用同一字符串(如 api deps_androidx.camerax),避免复制一份硬编码 GAV。
{DEPS_ROOT}/config.gradle、config_kotlin.gradle、config_androidx.gradle 与 config_libs.gradle 中确认无重复坐标。deps / deps_kotlin / deps_androidx / deps_lib 新增 key,已在 {DEPS_MANIFEST}/deps_*.gradle 或目标模块 build.gradle 中增加引用行。kapt 行(若该模块已使用 kapt)。3fa9400
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.