У меня есть сборка gradle, и я хочу сделать некоторые текстовые файлы немного более динамичными, в том смысле, что они всегда будут содержать номер версии текущей сборки. Это должно быть легко, если файлы обрабатываются как шаблоны, а номер версии поступает как переменная из gradle.
Я пробовал использовать Плагин шаблона Аарона Ниса вот так:
plugins {
id 'application'
id "dev.anies.gradle.template" version "0.0.2"
}
...
tasks.register("template", TemplateTask) {
data += [key: "value"]
from('src/templates')
into('build/templates')
}
Но Gradle всегда жалуется
Could not get unknown property 'TemplateTask' for project ':app' of type org.gradle.api.Project.
Я думал, что придерживался документации. Что здесь может быть не так?
Кстати, на данный момент мне не нужно использовать шаблоны Freemarker. Если кто-то покажет, как использовать встроенный механизм шаблонов, который может заменять переменные, я бы также принял это как ответ.
Итак, я оторвался от земли, используя ReplaceTokenFilter Ant. В конце концов, я нашел соответствующую строку в документации:
https://docs.gradle.org/current/userguide/working_with_files.html#sec:copying_files В примере 36 (Фильтрация файлов по мере их копирования) используется метод ReplaceTokenFilter. Но в отличие от многих примеров, которые я нашел в Интернете, он также содержит строку
import org.apache.tools.ant.filters.ReplaceTokens
что в конечном итоге заставило его работать на меня.
Насчет FreeMarkerTemplates еще не знаю, но мой случай решен.