gradle - 如何在 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 软件模型的一部分。但是,您可以从脚本应用模型规则 - 请参阅模型规则示例以获取更多信息
模型规则示例的链接在文档中被破坏,但我在上面修复了它。
推荐阅读
- java - 如何解决有关 getLoaderManager().initLoader 的问题?
- angular - 守卫总是返回真
- c# - 图表颜色重绘烛台颜色 C#
- javascript - Array Helper:遍历一个没有已知结束或开始的数组
- java - 无法向标准添加第二个 OR
- node.js - 如何在续集中使用“子查询”进行“输入”?
- javascript - 如何在不同的条件下调用相同的函数?
- python - Python - Flask 应用程序堆栈:TypeError:不可散列的类型:'list'
- javascript - 使用 Fetch 进行身份验证
- mysql - ON 语句中的 SQL (phpMyAdmin) 意外点