繁体   English   中英

如何使用 Gradle Kotlin DSL 为所有 Gradle 子项目定义一个变量

[英]How to define a variable for all Gradle subprojects using Gradle Kotlin DSL

我正在关注指南。

该指南写道:项目的额外属性在其子项目中是可见的 这似乎对我不起作用,因为以下不起作用:

build.gradle.kts我有:

val ktorVersion by extra("1.3.2")

subproject/build.gradle.kts我有:

dependencies {
    implementation("io.ktor:ktor-server-core:$ktorVersion")
}

在项目级别build.gradle.kts

val ktorVersion by extra { "1.3.2" }

subproject/build.gradle.kts

val ktorVersion: String by rootProject.extra

dependencies {  
   implementation("io.ktor:ktor-server-core:$ktorVersion")
}

有关更多信息: Gradle 有关额外属性的文档

此外,您可以在buildSrc 项目中的 object 中定义版本。 buildSrc是 Gradle 中的一个特殊项目,它的所有声明在所有 Gradle 项目中都是可见的( settings.gradle.kts除外)。 所以你可能有

buildSrc/src/main/kotlin/myPackage/Versions.kt

object Versions {
  const val ktorVersion = "1.2.3"
}

然后从您的任何build.gradle (.kts) 文件中使用它

import myPackage.Versions.ktorVersion

dependencies {
  implementation("io.ktor:ktor-server-core:$ktorVersion")
}

UPD:目前推荐的解决此问题的方法是使用https://docs.gradle.org/current/userguide/platforms.html

dependencies {
    implementation(libs.groovy.core)
    implementation(libs.groovy.json)
    implementation(libs.groovy.nio)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM