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

Kotlin DSL:将一个versions.gradle.kts导入另一个build.gradle.kts,gradle,kotlin,build.gradle,gradle-kotlin-dsl,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

我创建了一个
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"
}
现在我想导入并使用这样的文件:

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"
}
import org.jetbrains.kotlin.gradle.tasks.kotlincomfile
group=“io.github.deglans”
version=“0.0.1-快照”
插件{
应用
kotlin(“jvm”)版本定义.kotlin
}
应用{
mainClassName=“io.github.deglans.polishnotation.MainKt”
}
依赖关系{
编译(kotlin(“stdlib-jdk8”))
testCompile(“org.junit.jupiter”,“junit jupiter api”,Defines.junitVersion)
testRuntime(“org.junit.jupiter”,“junit-jupiter引擎”,Defines.junitVersion)
}
tasks.withType{
kotlinOptions.jvmTarget=“1.8”
}
我该怎么做

注:
我已经看到了,但并不完全是我在搜索…

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

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

  • 在项目根目录中创建一个
    buildSrc
    文件夹(与
    build.gradle.kts
    的级别相同)
  • buildSrc
    文件夹中添加
    build.gradle.kts
    。在这里,您需要定义
    kotlin dsl
    插件。您还需要定义获取插件的存储库
  • buildSrc
    文件夹内的
    src/main/Kotlin
    中创建一个Kotlin文件,在其中定义依赖项。您需要创建一个普通的Kotlin
    .kt
    文件,而不是
    gradle.kts

  • 重新导入Gradle配置,现在可以使用在
    build.Gradle.kts

    中步骤3创建的Kotlin文件中定义的变量。我不清楚两件事:1)为什么要在单独的文件中定义版本?仅在
    gradle.properties
    文件中定义版本是不够的?或者在
    额外的
    (ExtraPropertiesExtension)中?2) 为什么要将这些版本包装在
    Defines
    对象中?为什么不使用简单的普通
    val
    s?