最新版Android Studio如何在setting.gradle.kts内配置全局ext?

下面为setting.gradle.kts的配置,如果把注释的ext打开就会报错,前几个版本这样配置是没问题的:

pluginManagement {
    repositories {
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.name = "ModuleDemo"
include(":app")
include(":main")
include(":base")

ext{
    
//    //当它为true时,调试模式,组件可以单独运行。如果是false,正式编译打包的模式。
//    isDebug = true
//
//
//
//    android = [
//        compileSdk   : 33,
//    applicationId: "com.hnucm.gdesign_android",
//    minSdk       : 24,
//    targetSdk    : 33,
//    versionCode  : 1,
//    versionName  : "1.0"
//    ]
//
//    applicationId = [
//        "app"    : "com.hnucm.gdesign_android",
//    "main"   : "com.hnucm.module.main",
//    "login"  : "com.hnucm.module.login",
//    "message": "com.hnucm.module.message",
//    "mine"   : "com.hnucm.module.mine"
//    ]
//
//    //SDk中核心的库
//    library = [
//        corektx         : "androidx.core:core-ktx:1.8.0",
//    appcompat       : "androidx.appcompat:appcompat:1.4.1",
//    material        : "com.google.android.material:material:1.5.0",
//    constraintlayout: "androidx.constraintlayout:constraintlayout:2.1.3"
//    ]
//
//    //第三方的库
//    arouter_api = "com.alibaba:arouter-api:1.5.2"
//    //ARouter 的注解处理器
//    arouter_compiler = "com.alibaba:arouter-compiler:1.5.2"
//    gson = "com.google.code.gson:gson:2.8.6"

}
阅读 530
1 个回答

主要修改点

1.语法变化:将 ext 块中的列表语法 [] 改为 mapOf 语法。
2.属性设置:使用 mapOf 来定义 android、applicationId 和 library 属性。
这些修改是为了确保与 Kotlin DSL 语法的兼容性。

pluginManagement {
    repositories {
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.name = "ModuleDemo"
include(":app")
include(":main")
include(":base")

ext {
    // 当它为true时,调试模式,组件可以单独运行。如果是false,正式编译打包的模式。
    isDebug = true

    android = mapOf(
        "compileSdk" to 33,
        "applicationId" to "com.hnucm.gdesign_android",
        "minSdk" to 24,
        "targetSdk" to 33,
        "versionCode" to 1,
        "versionName" to "1.0"
    )

    applicationId = mapOf(
        "app" to "com.hnucm.gdesign_android",
        "main" to "com.hnucm.module.main",
        "login" to "com.hnucm.module.login",
        "message" to "com.hnucm.module.message",
        "mine" to "com.hnucm.module.mine"
    )

    library = mapOf(
        "corektx" to "androidx.core:core-ktx:1.8.0",
        "appcompat" to "androidx.appcompat:appcompat:1.4.1",
        "material" to "com.google.android.material:material:1.5.0",
        "constraintlayout" to "androidx.constraintlayout:constraintlayout:2.1.3"
    )

    arouter_api = "com.alibaba:arouter-api:1.5.2"
    arouter_compiler = "com.alibaba:arouter-compiler:1.5.2"
    gson = "com.google.code.gson:gson:2.8.6"
}
推荐问题
宣传栏