Обычно я использую каталог buildSrc
для определения объектов, представляющих версии или свойства, которые я хочу использовать повторно, особенно когда у меня есть несколько проектов или несколько зависимостей, которые остаются на шаге от контроля версий.Я собрал небольшой пример проекта здесь , который демонстрирует использование.
В buildSrc/src/main/kotlin/Versions.kt
У меня есть:
object Versions {
// Library versions
val Kotlin = "1.3.10"
val logback = "1.2.3"
// Plugin versions
object Plugins {
// Can be changed if we want to use a version other than one matching the library version
val Kotlin = Versions.Kotlin
}
}
И я использую его в другом месте, например:
plugins {
kotlin("jvm") version Versions.Plugins.Kotlin
}
// snip...
dependencies {
compile(kotlin("stdlib-jdk8"))
compile(group = "ch.qos.logback", name = "logback-classic", version = Versions.logback)
}
Они статически определены в файле Versions.kt
, но вы также можете прочитать их из среды, файла или свойств.Реальный ключ в том, что ваш buildSrc
оценивается до всего остального, поэтому он доступен для всех других этапов в вашем скрипте сборки (По крайней мере, все те, которые я пробовал!) .