Я новичок в Gradle (мы переключаемся с SBT) и использую его для создания приложений, созданных с помощью Play Framework.
Мне нужно добавить некоторую фильтрацию ресурсов, прежде чем Gradle обработает их (я хотел бы добавить некоторые свойства сборки в конфигурацию, чтобы сделать их доступными из кода).
Мне удалось «расширить» задачу java processResources, но по какой-то причине я не могу сделать то же самое с play processPlayBinaryPlayResources.
processPlayBinaryPlayResources {
filter ReplaceTokens, tokens: [
"applicationVersion": version
]
}
Даже это не работает:
def playVersion = "2.6.20"
def scalaVersion = "2.12"
def javaVersion = "1.8"
apply plugin: "java"
apply plugin: "idea"
apply plugin: "play"
model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: javaVersion
injectedRoutesGenerator = true
}
}
}
processPlayBinaryPlayResources {
doLast {
println("ok")
}
}
dependencies {
compile "io.vavr:vavr:0.9.2"
compile "org.imgscalr:imgscalr-lib:4.2"
compile "com.typesafe.play:play-guice_${scalaVersion}:2.6.20"
compile "com.typesafe.akka:akka-http_${scalaVersion}:10.1.5"
compile "com.typesafe.play:filters-helpers_${scalaVersion}:2.6.20"
compile "ch.qos.logback:logback-classic:1.2.3"
}
Это дает:
> Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.
Есть идеи, почему?