使用 Gradle 和 Kotlin 在预编译脚本中应用插件

Lê *_*inh 6 plugins gradle kotlin

我正在尝试应用precompile脚本gradle.kts文件(gradle.kts脚本已放入buildSrc/main/java。除了我无法添加带有版本的插件外,一切正常。例如我的test.gradle.kts

plugins {
  id("io.gitlab.arturbosch.detekt") version "1.1.1"
}
Run Code Online (Sandbox Code Playgroud)

但总是有错误

Invalid plugin request [id: 'io.gitlab.arturbosch.detekt', version: '1.1.1']. Plugin requests from precompiled scripts must not include a version number. Please remove the version from the offending request and make sure the module containing the requested plugin 'io.gitlab.arturbosch.detekt' is an implementation dependency of project ':buildSrc'.
Run Code Online (Sandbox Code Playgroud)

而且我也不能类来配置扩展

例如,这个通常的配置不起作用

configure<DetektExtension>
Run Code Online (Sandbox Code Playgroud)

我们如何指定插件版本precompile script?我们如何配置插件?

Pur*_*oid 3

由于无法看到您的构建结构和文件树,我只能根据我对您问题的理解来回答。根据您收到的错误消息,您应该在项目级别 build.gradle.kts 中声明插件依赖项:

plugins {
    id("io.gitlab.arturbosch.detekt") version "1.1.1"
}
Run Code Online (Sandbox Code Playgroud)

然后在你的 buildSrc/build.gradle 中实现它,如下所示:

plugins {
    `io.gitlab.arturbosch.detekt`
}
Run Code Online (Sandbox Code Playgroud)

Gradle 在 GitHub 上有示例,我从中绘制了这个示例:https: //github.com/gradle/kotlin-dsl-samples/tree/master/samples/multi-kotlin-project-with-buildSrc