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

标签 gradle kotlin plugins

我正在尝试申请 precompile脚本gradle.kts文件( gradle.kts 脚本放在 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>

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

最佳答案

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

plugins {
    id("io.gitlab.arturbosch.detekt") version "1.1.1"
}
然后在你的 buildSrc/build.gradle 中实现它,如下所示:
plugins {
    `io.gitlab.arturbosch.detekt`
}
Gradle 在 GitHub 上有示例,我从中绘制了这个示例,这里是:
https://github.com/gradle/kotlin-dsl-samples/tree/master/samples/multi-kotlin-project-with-buildSrc

关于gradle - 使用 Gradle 和 Kotlin 在预编译脚本中应用插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612343/

相关文章:

spring-boot - Corda Spring Boot集成中的Gradle错误

android - 如何使 MVRX View 模型与 dagger2 一起工作?

loops - Kotlin 中 `break` 中的 `continue` 和 `forEach`

ajax - 在 WordPress 插件管理 ajax 调用中,使用站点语言环境的方式是什么?

ruby-on-rails - 是否有用于 Rails 应用程序的批量电子邮件插件?

android - 找不到com.android.tools.build:gradle:3.0.1。在尝试构建tensorflow lite演示应用程序时

java - gradle无法在Maven存储库中找到 Artifact

java - Gradle war定制-文件夹名称

Kotlin:如何验证在模拟上调用了扩展函数

visual-studio - Visual Studio 中的 "Scope Highlight"功能? (与 BlueJ for java 中看到的相同)