如何在 gradle kotlin DSL 中配置 gradle 规则库模型插件?



我正在使用play-application插件,它又使用基于 gradle 规则的模型配置。build.gradle.kts看起来像这样:

plugins {
`play-application`
}
/* the snippet does not work
model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: javaVersion
injectedRoutesGenerator = true
}
}
}
*/
// this works instead
apply(from = "play_setup.gradle")
val setup: groovy.lang.Closure<Any?> by extra
setup(project, jVersion, scalaVersion, playVersion)

其中play_setup.gradle是:

ext.setup = { project, javaVersion, scalaVersion, playVersion ->
model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: javaVersion
injectedRoutesGenerator = true
}
}
}
}

有没有办法停止对使用基于规则的模型制作的插件使用 groovy 并直接通过 kotlin-DSL 配置它们?

不符合 Gradle Kotlin DSL Primer 中列出的限制。

Kotlin DSL 将不支持model {}块,它是 已停产的 Gradle 软件模型。但是,您可以应用模型 脚本中的规则 — 有关详细信息,请参阅模型规则示例

文档中的模型规则示例链接已损坏,但我在上面修复了它。

最新更新