4

我正在使用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 配置它们?

4

1 回答 1

1

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

Kotlin DSL 将不支持该model {}块,它是已停产的 Gradle 软件模型的一部分。但是,您可以从脚本应用模型规则 - 请参阅模型规则示例以获取更多信息

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

于 2020-04-08T06:45:22.593 回答