У меня есть многомодульный проект, написанный на 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
.Итак, как организовать версии зависимостей в подпроектах безопасным для типов образом без повторения имен переменных, но также с единой точкой объявления версий зависимостей?