我正在将许多命令式实用程序移植到apache-ant构建中,并且我在为特定用例提出策略时遇到了一些困难。
我们说我的文件定义如下:
document.xml中
<Document>
<Page source="page1.xml" />
<Page source="page2.xml" />
</Document>
page1.xml
<Page title="Page 1">
</Page>
page2.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模板文件。我的问题的范围特别涉及从多个不同来源构建文档,以及作为一项任务可能看起来像什么。
干杯,谢谢你的时间!
答案 0 :(得分:0)
如果document.xml
必须是XML(与#include
- 其他人的模板相对)......那么它不是一个非常符合FMPP方法的任务,但无论如何,我猜您应该使用FMPP的renderXml
处理模式(请参阅http://fmpp.sourceforge.net/settings.html#processingMode)来转换该XML。在渲染器FreeMarker模板中,当您到达Page
元素时,可以调用#include
按原样插入引用的XML。 (当然,很大程度上取决于你将对这些文件做些什么。)