将 FreeMarker 与 Ant 结合使用

我们知道两个“ FreeMarker Ant 任务”:

本节介绍FreemarkerXmlTask。有关 FMPP 的更多信息,请访问其主页:http://fmpp.sourceforge.net/

为了使用FreemarkerXmlTask,您必须首先在 Ant 构建文件中定义freemarker.ext.ant.FreemarkerXmlTask,然后调用该任务。假设您要使用假设的“ xml2html.ftl”模板将多个 XML 文档转换为 HTML,其中 XML 文档位于目录“ xml”中,而 HTML 文档生成到目录“ html”中。您将编写如下内容:

<taskdef name="freemarker" classname="freemarker.ext.ant.FreemarkerXmlTask">
  <classpath>
    <pathelement location="freemarker.jar" />
  </classpath>
</taskdef>
<mkdir dir="html" />
<freemarker basedir="xml" destdir="html" includes="**/*.xml" template="xml2html.ftl" />

该任务将为每个 XML 文档调用模板。每个文档都将解析为 DOM 树,然后包装为 FreeMarker 节点变量。当模板处理开始时,特殊变量.node被设置为 XML 文档的根节点。

请注意,如果您使用的是旧版(FreeMarker 2.2.x 和更早版本)XML 适配器实现,该适配器仍然有效,并且 XML 树的根作为变量document放置在数据模型中。包含旧版freemarker.ext.xml.NodeListModel类的实例。

请注意,构建文件定义的所有属性都将作为名为“ properties”的哈希模型提供。提供了其他几种模型;有关使模板可以使用哪些变量以及任务可以接受哪些其他属性的详细说明,请参阅 JavaDoc for freemarker.ext.ant.FreemarkerXmlTask

上一章 首页 下一章