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

使用Gradle和Kotlin在预编译脚本中应用插件,gradle,kotlin,plugins,Gradle,Kotlin,Plugins,我正在尝试应用precompilescriptgradle.kts文件(gradle.ktsscript放在buildSrc/main/java中。除了我不能添加版本为的插件外,一切正常。例如我的test.gradle.kts plugins { id("io.gitlab.arturbosch.detekt") version "1.1.1" } 但总是会出错 Invalid plugin request [id: 'io.gitlab.arturbosch.detekt', versi

我正在尝试应用
precompile
script
gradle.kts
文件(
gradle.kts
script放在
buildSrc/main/java
中。除了我不能添加版本为的插件外,一切正常。例如我的
test.gradle.kts

plugins {
  id("io.gitlab.arturbosch.detekt") version "1.1.1"
}
但总是会出错

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'.
而且我也无法配置类来配置扩展

例如,此正常配置不起作用

configure<DetektExtension>
配置

如何在
预编译
脚本
中指定插件版本?如何配置插件?

在无法查看构建结构和文件树的情况下,我只能根据我对您问题的理解来回答。根据您收到的错误消息,您应该在项目级build.gradle.kts:

plugins {
    id("io.gitlab.arturbosch.detekt") version "1.1.1"
}
然后在buildSrc/build.gradle中按如下方式实现它:

plugins {
    `io.gitlab.arturbosch.detekt`
}
Gradle在GitHub上有一些示例,我从中绘制了以下示例:

谢谢在buildSrc工作中使用插件{},但这是唯一的选项吗?我们可以使用自定义插件或预编译脚本来配置扩展吗在这些文件中?@LêKhánhVinh是的,我相信如果你遵循这里文档中的模式:谢谢你的答案。对于那些来这里寻找答案的人,请注意格式必须是plugins{“io.gitlab.arturbosch.detekt”}通常回勾是有效的。我编辑了我的答案以添加缺少的回勾。请不要在你的帖子中添加问候语(“嗨”)和署名(“谢谢”)。这里最好是技术性写作。