Обработка шаблона Gradle

У меня есть сборка 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. Если кто-то покажет, как использовать встроенный механизм шаблонов, который может заменять переменные, я бы также принял это как ответ.

Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я оторвался от земли, используя 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 еще не знаю, но мой случай решен.

Другие вопросы по теме