Gradle 模板处理
Gradle template processing
我有一个 gradle 构建并希望使一些文本文件更加动态,因为它们将始终包含当前构建的版本号。一旦文件被视为模板并且版本号作为来自 gradle.
的变量,这应该很容易。
我试过像这样使用 Aaron Nies' template plugin:
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 模板。如果有人展示如何使用可以替换变量的内置模板引擎,我也会接受它作为答案。
好的,所以我开始使用 Ant 的 ReplaceTokenFilter。毕竟我在文档中找到了相关行:
https://docs.gradle.org/current/userguide/working_with_files.html#sec:copying_files
示例 36(在复制文件时过滤文件)使用 ReplaceTokenFilter。但与我在网上找到的许多示例不同,它还包含行
import org.apache.tools.ant.filters.ReplaceTokens
这最终使它对我有用。
至于FreeMarkerTemplates我还不知道,不过我的案子已经解决了。
我有一个 gradle 构建并希望使一些文本文件更加动态,因为它们将始终包含当前构建的版本号。一旦文件被视为模板并且版本号作为来自 gradle.
的变量,这应该很容易。我试过像这样使用 Aaron Nies' template plugin:
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 模板。如果有人展示如何使用可以替换变量的内置模板引擎,我也会接受它作为答案。
好的,所以我开始使用 Ant 的 ReplaceTokenFilter。毕竟我在文档中找到了相关行:
https://docs.gradle.org/current/userguide/working_with_files.html#sec:copying_files 示例 36(在复制文件时过滤文件)使用 ReplaceTokenFilter。但与我在网上找到的许多示例不同,它还包含行
import org.apache.tools.ant.filters.ReplaceTokens
这最终使它对我有用。
至于FreeMarkerTemplates我还不知道,不过我的案子已经解决了。