我真的很想将我的脚本模块化成多个部分(测试,默认,文档,android)。但是当我尝试将子脚本应用于父脚本时遇到问题...

这是我的 child 脚本(IDE现在没有抱怨)

import io.gitlab.arturbosch.detekt.Detekt


task("hello").doLast {
    println("Hello World from plugins! :D")
}


tasks {
    val detekt by existing(Detekt::class) {
        reports {
            html {
                val destination = "$buildDir/detekt"
            }
        }
    }
}

但是,当我尝试将此脚本应用于主脚本时:
apply(from = "tdd.gradle.kts")

我得到以下错误:
    Script compilation errors:

  Line 01: import io.gitlab.arturbosch.detekt.Detekt
                  ^ Unresolved reference: io

  Line 10:  val detekt by existing(Detekt::class) {
                                   ^ Unresolved reference: Detekt

  Line 11:      reports {
             ^ Unresolved reference: reports

  Line 12:          html {
              ^ Unresolved reference: html

如何解决此问题,以便可以在子脚本中应用例如detekt插件,并将其应用到父脚本中?

最佳答案

From a Gradle core dev(情况与您的情况非常相似):



因此,基本上,使用旧的buildscript语法,您的导入应该可以进行

10-06 11:20