# ADR 0002:约定插件 + 版本目录作为唯一配置事实源 - **状态**:已接受 - **日期**:2026-09-03 ## 背景 多模块项目若在每个模块手写 `android {}` 模板,会出现配置漂移、版本不一致、样板重复。 ## 决策 - **约定插件**(`build-logic/`,included build):提供 `mcl.*` 插件,集中编码 compileSdk/minSdk、Java/Kotlin target、Compose、Hilt、Room、Lint、Spotless 等配置。模块只声明插件 + namespace。 - **版本目录**(`gradle/libs.versions.toml`):所有依赖版本唯一事实源,主构建与 build-logic 共用。 ## 理由 - 把"严谨性"编码进确定性规则(harness-engineering 的"严谨性转移"原则),而非依赖人工记忆。 - 一个版本改一处,全项目生效。 ## 后果 - 新增/调整模块配置需改 build-logic;新增依赖需改版本目录。 - 好处:`verifyArchitecture` 等约束可挂在约定插件体系里统一执行。