Как игнорировать явный импорт классов, таких как скрипт gradle kotlin, при написании пользовательских kotlin-dsl - PullRequest
0 голосов
/ 27 ноября 2018

В скрипте сборки kotlin от gradle нам не нужно явно импортировать классы или функции, такие как plugins, repositories или dependencies в скрипте сборки build.gradle.kts .

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?

1 Ответ

0 голосов
/ 27 ноября 2018

Gradle определяет список неявных импортов, у которых нет механизма для расширения этого списка.Это то же самое, что и для версий build.gradle и Groovy, так же как и для версий Kotlin.

См. Также: Автоматический импорт в плагин Gradle

Что по-прежнему вернона сегодня.В исходном коде Kotlin Gradle Script остался TODO исходный код ( главная ветвь по состоянию на 22 ноября 2018 ), относящийся к этому:

//TODO: пусть этому будут способствовать: плагины

...