CtrlK
BlogDocsLog inGet started
Tessl Logo

project-gradle-central-deps

在 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

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Project 中心化依赖(Gradle)

仓库布局契约(路径唯一来源)

本 Skill 内凡出现依赖配置路径,均以下列符号展开;将来若抽成 project-gradle-* 或 fork 改目录,只改本表一行即可

符号当前值(DevUtils)说明
DEPS_ROOTfile/gradle坐标定义:ext.depsext.deps_libversions.gradle
DEPS_MANIFESTfile/deps业务侧聚合引用:deps_*.gradle

常用文件(由契约展开)

符号路径变量用途
{DEPS_ROOT}/config.gradledeps构建插件 builddev 分组
{DEPS_ROOT}/config_kotlin.gradledeps_kotlin官方 Kotlin / JetBrains 生态及 KTX
{DEPS_ROOT}/config_androidx.gradledeps_androidxandroidx.* Jetpack / Material 等官方库
{DEPS_ROOT}/config_libs.gradledeps_lib非 Android 官方第三方库
{DEPS_ROOT}/versions.gradleversions${versions.xxx} 集中版本号
{DEPS_MANIFEST}/deps_android.gradle引用 deps_kotlin.* / deps_androidx.*(Android 库 / 示例)
{DEPS_MANIFEST}/deps_project.gradle引用 deps_lib.*(示例 / 第三方 lib 聚合)

{DEPS_ROOT}/config.gradle 首部依次 applyconfig_kotlin.gradleext.deps_kotlin)、config_androidx.gradleext.deps_androidx)、config_libs.gradleext.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)。

0. 官方 Android 库检索(新增依赖前建议查阅)

写入 {DEPS_ROOT}/config_androidx.gradledeps_androidx)/ config_kotlin.gradledeps_kotlin)的 官方坐标 前,优先在下列站点核对 artifact 名、稳定版号、分组语义

用途链接
AndroidX 版本总览(中文,推荐)https://developer.android.com/jetpack/androidx/versions?hl=zh-cn
AndroidX 库浏览https://developer.android.com/jetpack/androidx/explorer
各库 Release Noteshttps://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

1. 查找是否已存在

按优先级在 {DEPS_ROOT} 下四个坐标文件全文检索(建议对 artifact 名group已有 key 各搜一次):

文件变量用途
{DEPS_ROOT}/config.gradledeps构建插件 builddev 分组
{DEPS_ROOT}/config_kotlin.gradledeps_kotlin官方 Kotlin / JetBrains 生态及相关 KTX
{DEPS_ROOT}/config_androidx.gradledeps_androidx官方 androidx.* / Material 等
{DEPS_ROOT}/config_libs.gradledeps_lib非 Android 官方第三方库,按子分组组织

若已存在:跳到 第 4 步,只在本模块或 {DEPS_MANIFEST}/*.gradle 中增加 api / implementation / kapt 引用,不要再写一条相同 GAV 的配置。

2. 不存在时:决定写入哪个文件、哪个分组

2.1 写入官方坐标文件(deps / deps_kotlin / deps_androidx

在同时满足「官方」且语义属于下列范围时使用:

  • {DEPS_ROOT}/config_kotlin.gradledeps_kotlin,顶层平铺 map)org.jetbrains.kotlinorg.jetbrains.kotlinxorg.jetbrains.dokka;与 Kotlin/JetBrains 生态强相关、且现有 deps_kotlin 里同类条目并列的 AndroidX KTX(若团队惯例放在 deps_kotlin 而非纯 deps_androidx,与文件内现有条目保持一致)。
  • {DEPS_ROOT}/config_androidx.gradledeps_androidx,顶层平铺 map)androidx.* Jetpack/AndroidX 构件;com.google.android.material:material 等与官方文档并列的 Material 组件(本仓库当前放在 deps_androidx);com.google.dagger:hilt-android* 等本文件已有先例的官方栈。
  • {DEPS_ROOT}/config.gradledeps)→ build 分组:Gradle 插件类坐标(与现有 kotlin_gradle_plugin 等并列)。
  • {DEPS_ROOT}/config.gradledeps)→ dev 分组:仅 io.github.afkt Dev 系列,勿把外部库塞入。

CameraXandroidx.camera:*)属于 AndroidX 官方 → 新增键应放在 config_androidx.gradledeps_androidx(除非仓库后续另有约定;以文件内同类 androidx.* 为准)。

2.2 写入 {DEPS_ROOT}/config_libs.gradledeps_lib

  • 非 Google/JetBrains/AndroidX 官方发布、或 group 为第三方域名(如 com.squareupcom.github.*io.github.* 等)→ 放入 deps_lib
  • 在现有子分组中选语义最接近的一个(如网络 common、图片 image_widget、路由 router)。不要把明显不属于该分组的库硬塞进去。
  • 若确实没有合适分组:deps_lib 顶层新增一个子 map 键(命名风格与现有一致:小写 + 下划线,如 camera_kit),并在该块顶部用与全文件一致的 区块注释// ===...=== + 简短中文说明)。

2.3 与 {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};否则可直接写死版本号(与现有条目风格一致)。

3. 新增条目时的注释与 key 命名

参考 {DEPS_ROOT} 下两文件中已有行:

  • 可选:// https://mvnrepository.com/artifact/...
  • 一行中文说明 + 官方文档或 GitHub 链接(与邻近条目同级)。
  • key:全小写 + 下划线,语义清晰(如 camerax_camera2camerax_lifecycle);同一库多模块多个 key 时保持前缀一致。

4. 在业务侧引用(DEPS_MANIFEST

  • Android 库 / 示例里与官方坐标相关的清单:照 {DEPS_MANIFEST}/deps_android.gradle —— api deps_kotlin.<key>api deps_androidx.<key>,需要处理器时用 kapt(与模块现有写法一致)。
  • 示例工程、第三方 lib 聚合清单:照 {DEPS_MANIFEST}/deps_project.gradle —— api deps_lib.<子分组>.<key>,并保留分组标题注释与简短中文/GitHub 说明。

具体模块若直接写依赖而不走 deps_kotlin/deps_androidx/deps_lib,仍应使用同一字符串(如 api deps_androidx.camerax),避免复制一份硬编码 GAV。

5. 自检清单

  • 官方 AndroidX/Kotlin 坐标已在 AndroidX 版本总览(中文) 核对稳定版号与 artifact 名。
  • 已在 {DEPS_ROOT}/config.gradleconfig_kotlin.gradleconfig_androidx.gradleconfig_libs.gradle 中确认无重复坐标。
  • 官方/非官方归属与文件分组、注释风格与邻居一致。
  • 若在 deps / deps_kotlin / deps_androidx / deps_lib 新增 key,已在 {DEPS_MANIFEST}/deps_*.gradle 或目标模块 build.gradle 中增加引用行。
  • 需要注解处理器时同时声明 kapt 行(若该模块已使用 kapt)。
Repository
afkT/DevUtils
Last updated
First committed

Is this your skill?

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.