Kotlin DSL:将versions.gradle.kts导入另一个build.gradle.kts

时间:2018-09-08 14:47:33

标签: gradle kotlin build.gradle gradle-kotlin-dsl

我已经创建了一个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"
}

我该怎么做?

注意: 我已经看过this post,但这并不是我搜索...

1 个答案:

答案 0 :(得分:1)

虽然我认为应该可以导入另一个gradle.kts文件,但我无法使其正常工作。

但是,我确实设法在buildSrc目录中的单独Kotlin文件中定义了依赖项。

  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配置,现在您可以使用在build.gradle.kts的步骤3中创建的Kotlin文件中定义的变量。