我正在将许多命令式实用程序迁移到 apache-ant 构建中,并且我很难为特定用例制定策略。
假设我有一个定义如下的文档:
文档.xml
<Document>
<Page source="page1.xml" />
<Page source="page2.xml" />
</Document>
页1.xml
<Page title="Page 1">
</Page>
页2.xml
<Page title="Page 2">
</Page>
我想创建一个 ant 任务,该任务获取这些文档并将其转换为单个文档,如下所示:
<Document>
<Page title="Page 1">
</Page>
<Page title="Page 2">
</Page>
</Document>
我决定使用 fmpp/FreeMaker 来完成这项任务(虽然这不是必需的,但它似乎非常适合我的需求)。
有没有办法在声明性 apache-ant 任务中定义这种转换?
注意:到目前为止,我已经能够运行一个基本的 fmpp ant,该蚁针对数据模型渲染 signle 模板文件。我的问题范围特别与从多个不同来源构建文档有关,以及这可能是一项任务。
干杯,感谢您的时间!
如果document.xml
必须是XML(与#include
其他模板相反)...那么这不是一个非常适合 FMPP 方法的任务,但无论如何,我想你应该使用 FMPP 的renderXml
处理模式(见 http://fmpp.sourceforge.net/settings.html#processingMode)来转换该 XML。在呈现器 FreeMarker 模板中,当您到达 Page
元素时,可以调用 #include
按原样插入引用的 XML。(当然,很大程度上取决于您与这些文件的其他操作。