gpt4 book ai didi

android - Gradle构建文件的Freemarker模板

转载 作者:行者123 更新时间:2023-12-03 06:15:15 26 4
gpt4 key购买 nike

嗨,我正在尝试从freemarker模板制作一个build.gradle文件,并且遇到了Freemarker和de gradle DSL支持${someString}的小问题

所以在gradle脚本的某个地方,我有字段/变量定义。

例如,我定义了如下字符串:
def gitSha = 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim()

并将在gradle文件中的其他地方使用它,如下所示:
filename = "new-archive-${gitSha}.jar"

但是,当我使用Freemarker生成gradle文件时,出现错误gitSha为null或未在数据模型中定义的错误。有没有办法区分用于gradle DSL的${gitSha}和属于Freemarker模板的其他${someStrings}

最佳答案

原则上,正确的解决方案是使用两种语言中的某些代替${}(假设@{})。但是至少在Freemarker中这是不可配置的。但是,如果您编写一个只包装另一个TempalateLoader的自定义TemplateLoader,但过滤了Reader,以便用@{ -s替换${ -s,并且用${替换@{,则可以模拟(有点...)。然后,必须将相同的转换应用于Freemarker将其输出写入其中的Writer,因此输出中的@{将替换为${ -s。 (我希望顺便说一句,Freemarker迟早会有一个可配置的插值语法,因为${的问题经常出现,但这是 future ...)

关于android - Gradle构建文件的Freemarker模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com