簡體   English   中英

Gradle Kotlin DSL:在唯一位置定義 Android 構建工具版本

[英]Gradle Kotlin DSL: Define Android build tools version in unique place

我正在使用 Android Studio 4.0,並在多模塊項目中添加了buildSrc模塊來管理依賴版本。 Inside buildSrc i have Dependencies object and Version object to use kotlin-dsl in the build.gradle.kts , The problem it's I can't access to Constants object from gradle.kts and I have 2 versions of com.android.tools.build:gradle:4.0.0並且我的自定義插件需要此依賴項,我如何只能擁有一個版本的構建工具?

//Dependencies.kt
object PluginDependencies {
 const val buildTools = "com.android.tools.build:gradle:${Versions.buildTools}"
}

//Versions.kt
object Versions {
const val buildTools = "4.0.0" 
}

我的build.gradle.kts中有這個

plugins {
    `kotlin-dsl`
}
gradlePlugin {
    plugins {
        register("CustomPlugin") {
            id = "customPlugin"
            implementationClass = "CustomPlugin"
        }
    }
}
repositories {
    mavenCentral()
    google()
    jcenter()
}

dependencies {
    // this cuase a compile error -> implementation("com.android.tools.build:gradle:${constants.Versions.buildTools}")
    implementation("com.android.tools.build:gradle:4.0.0")
    implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72")

    /* Depend on the default Gradle API's since we want to build a custom plugin */
    implementation(gradleApi())
    implementation(localGroovy())
}

您不能在 buildSrc/build.gradle.kts 文件中使用常量 PluginDependencies,因為在此階段構建腳本不知道依賴於 buildSrc/src/main/kotlin/PluginDependencies.kt 的代碼。 buildSrc/build.gradle.kts 文件是第一個被構建的文件,然后是 rest。

這仍然是正確的,但您可以做的是在 buildSrc 中創建一個 buildSrc。 我不知道,但目前發現了這個樣本:

https://github.com/badoo/Reaktive/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM