【发布时间】:2019-03-01 21:35:55
【问题描述】:
我有用 Kotlin DSL 编写的多模块项目。以下是相关文件:
rootDir/gradle/dependencies.gradle.kts:
// other config
val libVersion by extra("0.1")
rootDir/build.gradle.kts:
// other config
subprojects {
apply(from = "$rootDir/gradle/dependencies.gradle.kts")
}
在我的子项目中,我可以使用代码访问依赖项:
dependencies {
implementation("group:name:${extra["libVersion"]}")
}
有没有办法通过名称访问libVersion 变量?我想在子项目中使用代码声明依赖:
dependencies {
implementation("group:name:$libVersion")
}
因为这将为属性提供类型安全的链接以及属性值的 IDE 帮助。一种方法是将变量绑定到额外的属性,如下所示:
val libVersion: String by extra
但这意味着重复extra 中已声明的属性。那么如何以类型安全的方式组织子项目中的依赖版本,既不重复变量名又单点声明依赖版本?
【问题讨论】: