我有用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
中已经声明的属性。那么,如何在子项目中以类型安全的方式组织依赖版本,而不用重复变量名,也可以单点声明依赖版本?
答案 0 :(得分:0)
您可以使用
之类的代码val propertName by extra {
//here goes the initializer code
"the result"
}
extra{..}
函数定义名称为propertName
(或变量名称)的项目的属性
你可能会说
val anotherProperty by rootProject.extra
访问其他项目的额外属性