Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在编写自定义kotlin dsl时忽略显式导入类,如gradle kotlin脚本_Kotlin_Gradle Kotlin Dsl_Kotlin Dsl - Fatal编程技术网

如何在编写自定义kotlin dsl时忽略显式导入类,如gradle kotlin脚本

如何在编写自定义kotlin dsl时忽略显式导入类,如gradle kotlin脚本,kotlin,gradle-kotlin-dsl,kotlin-dsl,Kotlin,Gradle Kotlin Dsl,Kotlin Dsl,在gradle的kotlin构建脚本中,我们不需要在构建脚本中显式导入类或函数,如插件、存储库或依赖项 plugins { val kotlinVersion = "1.3.10" val springBootVersion = "2.1.0.RELEASE" val detektVersion = "1.0.0-RC10" id("org.springframework.boot") version springBootVersion id("org.

在gradle的kotlin构建脚本中,我们不需要在构建脚本中显式导入类或函数,如
插件
存储库
依赖项

plugins {
    val kotlinVersion = "1.3.10"
    val springBootVersion = "2.1.0.RELEASE"
    val detektVersion = "1.0.0-RC10"

    id("org.springframework.boot") version springBootVersion
    id("org.jetbrains.kotlin.jvm") version kotlinVersion
    id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion
    id("io.spring.dependency-management") version "1.0.6.RELEASE"
    id("io.gitlab.arturbosch.detekt") version detektVersion
}


repositories {
    mavenLocal()

    mavenCentral()
    maven(url = uri("https://dl.bintray.com/s1m0nw1/KtsRunner"))
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-script-runtime")
    implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable")
    implementation("org.jetbrains.kotlin:kotlin-script-util")

    implementation("org.springframework.boot:spring-boot-starter-webflux")
    implementation("org.springframework.boot:spring-boot-starter-actuator")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("cn.pilipa:pilipa-spring-boot-starter-logging:2.0.10")

    implementation("de.swirtz:ktsRunner:0.0.5")

    testImplementation("org.springframework.boot:spring-boot-starter-test"){
        exclude(module = "junit")
    }
    testImplementation("io.projectreactor:reactor-test")
    testImplementation("org.springframework.cloud:spring-cloud-stream-test-support")
    testImplementation("org.junit.jupiter:junit-jupiter-api")
    testRuntime("org.junit.jupiter:junit-jupiter-engine")
    testCompile("io.kotlintest:kotlintest-runner-junit5:${kotlinTestVersion}")
    testCompile("io.kotlintest:kotlintest-extensions-spring:${kotlinTestVersion}")

    detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:${detektVersion}")
}

如何在自定义kotlin dsl脚本中实现此类似功能,以隐式导入kotlin dsl脚本中的类?

Gradle定义了一个隐式导入列表,该列表没有扩展此列表的机制。这与
build.gradle
和Groovy版本与Kotlin版本相同

另见:

这一点到今天仍然适用。Kotlin Gradle脚本(截至2018年11月22日的主分支机构)中仍有与此相关的待办事项:

//TODO:让它由:插件贡献


谢谢你全面的回答。这和我问的有点不同。这个问题与编写gradle kotlin dsl脚本无关。我想为自己创建的kotlin dsl隐式导入类。看起来gradle是一个很好的例子,可以作为如何在kotlin dsl脚本中隐式导入类的参考。您只需要kotlin脚本隐式导入吗?这是由Kotlin脚本支持的,并有文档记录。“Kotlin dsl脚本”是不存在的,除了用于Gradle的Kotlin dsl(使用该术语)。你想让Kotlin脚本有隐含的导入吗?是的。我正在创建自己的dsl脚本,而不是编写gradle脚本。我想在我的dsl脚本中隐式导入。