/*
 * 第 8 章 · 多项目构建示例 · settings.gradle.kts
 * ------------------------------------------------------------
 * 这是多模块项目的"目录"，决定哪些子模块会参与构建。
 * 关键点：
 *  1) pluginManagement 里 includeBuild("build-logic") 引入构建逻辑
 *  2) include(...) 把若干子模块挂到根项目下
 *  3) dependencyResolutionManagement 统一管理仓库（强烈推荐）
 */

pluginManagement {
    // ★ 把 build-logic 当成"插件来源"，子模块可直接 plugins { id("xxx") }
    includeBuild("build-logic")

    repositories {
        gradlePluginPortal()
        mavenCentral()
    }
}

dependencyResolutionManagement {
    // 强制所有依赖只能从这里声明的仓库下载，禁止子模块 build.gradle 里再写 repositories {}
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        mavenCentral()
        google()
    }
}

rootProject.name = "ch08-multi-project-demo"

// ★ include 写在 settings 里，这就是"哪些子项目属于本次构建"的清单
include(
    "app",
    "feature-user",
    "feature-order",
    "lib-core"
)

/*
 * 思考题：
 *  - 如果删掉 include("feature-order")，会怎样？
 *    → 该模块不会被识别为子项目，也不能再被 project(":feature-order") 引用。
 *  - 如果想把外面 ../my-payment-sdk 的项目作为源码引入呢？
 *    → 在 settings.gradle.kts 顶部加 includeBuild("../my-payment-sdk")
 */
