我可以在 Kotlin 中编写 gradle buildSrc 吗?

Can I write gradle buildSrc in Kotlin?

我想用 Kotlin 而不是 Java 编写我的 Gradle buildSrc,因为其他所有内容也是 Kotlin。

我已经在 buildSrc/src/main/kotlinbuildSrc/src/main/java 中尝试了 .kt 个文件,但都不会被编译。至少当我把它们放在 /java 时,IntelliJ 确实识别它们,但是当 运行 Gradle 任务时找不到它们。

那么,如何 Gradle 查看 Kotlin 构建源代码?

buildSrc被视为包含的构建,只要应用所需的插件,您就可以在该项目中使用任何支持的语言。

以下设置应该有效:

buildSrc/build.gradle

plugins {
    id("org.jetbrains.kotlin.jvm") version "1.3.72"
}
repositories {
    mavenCentral()
}

自定义任务:

buildSrc/src/main/kotlin/tasks/MyKtTask.kt

package tasks

import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction

open class MyKtTask : DefaultTask() {

    @TaskAction
    fun execute() {
        println("kotlin tasks executed")
    }

}

使用自定义任务:

build.gradle

task "testKt" (type: tasks.MyKtTask){
    doLast{
        // do something
    }
}