Kotlin DSL: импортируйте файл version.gradle.kts в другой build.gradle.kts

Я создал versions.gradle.kts просто так:

object Defines {
     const val kotlinVersion = "1.2.61"
     const val junitVersion = "5.3.0"
}

Теперь я хочу импортировать и использовать эти файлы следующим образом:

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

group = "io.github.deglans"
version = "0.0.1-SNAPSHOT"

plugins {
    application
    kotlin("jvm") version Defines.kotlinVersion
}

application {
    mainClassName = "io.github.deglans.polishnotation.MainKt"
}

dependencies {
    compile(kotlin("stdlib-jdk8"))
    testCompile("org.junit.jupiter", "junit-jupiter-api", Defines.junitVersion)
    testRuntime("org.junit.jupiter", "junit-jupiter-engine", Defines.junitVersion)
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "1.8"
}

Как я могу это сделать?

ПРИМЕЧАНИЕ. Я уже видел этот пост но это не совсем то, что я ищу...


person Deglans Dalpasso    schedule 08.09.2018    source источник
comment
Мне непонятны две вещи: 1) Почему вы указываете версию в отдельном файле? Недостаточно определить версии, например. в файле gradle.properties? Или в extra (ExtraPropertiesExtension)? 2) Почему вы хотите обернуть эти версии внутри объекта Defines? Почему бы не использовать просто простые vals?   -  person Vít Kotačka    schedule 19.09.2018


Ответы (1)


Хотя я думаю, что можно импортировать еще один файл gradle.kts, я не смог заставить его работать должным образом.

Однако мне удалось определить свои зависимости в отдельном файле Kotlin в каталоге buildSrc.

  1. Создайте папку buildSrc в корне вашего проекта (тот же уровень, что и build.gradle.kts)
  2. Добавьте build.gradle.kts в эту папку buildSrc. Здесь вам нужно определить плагин kotlin-dsl. Вам также необходимо определить репозиторий, где взять плагин.
plugins {
    `kotlin-dsl`
}

repositories {
    mavenCentral()
}
  1. Создайте файл Kotlin, в котором вы определяете свои зависимости в src/main/kotlin внутри папки buildSrc. Вам нужно создать обычный файл Kotlin .kt, а не файл gradle.kts.

Повторно импортируйте свою конфигурацию Gradle, и теперь вы можете использовать переменные, которые вы определили в своем файле Kotlin, созданном на шаге № 3, в файле build.gradle.kts.

person Wyko    schedule 01.12.2018