🧩 settings.gradle.kts · 模块依赖 · 版本目录
🎒 中小学生色系 · 双边框多模块架构下,根目录 settings.gradle.kts 统一声明所有子模块:
// 根目录 settings.gradle.kts pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "MultiModuleCompose" // 模块注册 —— 中小学生也能看懂的命名 😊 include(":app") include(":core:ui") include(":core:network") include(":feature:home") include(":feature:profile") include(":feature:settings") include(":library:common")
每个模块的 build.gradle.kts 通过 project() 引用其他模块:
| 模块 | 依赖声明 (dependencies) | 说明 |
|---|---|---|
| :app | implementation(project(":feature:home")) | 主应用依赖特性模块 |
| :feature:home | implementation(project(":core:ui")) | 首页依赖UI公共库 |
| :feature:profile | implementation(project(":core:network")) | 个人页依赖网络层 |
| :core:ui | implementation(project(":library:common")) | UI组件依赖通用工具 |
| :library:common | 无模块依赖 | 纯工具/扩展 |
✅ 推荐使用 implementation 避免依赖泄漏
在 gradle/libs.versions.toml 中集中管理依赖版本,告别硬编码:
# gradle/libs.versions.toml
[versions]
compose-bom = "2024.12.01"
kotlin = "2.0.21"
agp = "8.5.2"
retrofit = "2.9.0"
compose-compiler = "1.5.15"
[libraries]
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
compose-ui = { group = "androidx.compose.ui", name = "ui" }
compose-material3 = { group = "androidx.compose.material3", name = "material3" }
retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
在模块中引用版本目录:
// app/build.gradle.kts
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
}
dependencies {
implementation(platform(libs.compose.bom))
implementation(libs.compose.ui)
implementation(libs.compose.material3)
implementation(libs.retrofit.core)
implementation(project(":feature:home"))
}
✨ 中小学生色系小贴士
libs.versions.tomlimplementation(project(":module")),保持编译隔离:feature:*、:core:*、:library:*