Skip to content

Settings 深度解析

settings.gradle.kts 是 Gradle 构建的起点。在单模块时代它很不起眼,但在现代多模块和插件化项目中,它是核心配置中心。

1. 插件管理 (pluginManagement)

你可以统一配置所有模块使用的插件版本和搜索仓库,避免在每个 build.gradle 中重复定义。

kotlin
pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

2. 依赖解析管理 (dependencyResolutionManagement)

专家级技巧:集中式仓库管理

在现代项目中,强烈建议将所有模块的 repositories 配置移到 settings.gradle.kts。这被称为 Centralized Repository Declaration

kotlin
dependencyResolutionManagement {
    // 强制所有模块使用这里定义的仓库,禁止在子模块单独定义
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    
    repositories {
        google()
        mavenCentral()
    }
}

3. includeBuild (复合构建)

用于将另一个完整的 Gradle 项目嵌套进当前项目,常用于独立维护插件源码。

kotlin
// 将 build-logic 目录作为一个独立的构建项目引入
includeBuild("build-logic")

4. 监听构建生命周期

你可以在 Settings 中添加监听器,监控整个项目的构建耗时。

kotlin
gradle.addBuildListener(object : BuildListener {
    override fun buildFinished(result: BuildResult) {
        println("构建结束,状态: \${result.failure ?: "成功"}")
    }
    // ... 其他回调
})