【发布时间】:2011-03-02 06:43:36
【问题描述】:
是否可以从 Antlib 中定义的 Apache Ant 宏中访问资源?
例如,在我的antlib.xml 中,我有一个执行一些 XSLT 的宏。理想情况下,我希望 XSLT 文件与 antlib.xml 打包在同一个 JAR 中,但我不知道如何指定 XSLT 的位置。
这是(简化的)代码:
<antlib xmlns:tibant="antlib:org.windyroad.tibant">
<macrodef name="configure-ear">
<attribute name="xml" />
<attribute name="out" />
<sequential>
<xslt in="@{xml}"
out="@{out}"
style="...what to put here...">
</xslt>
</sequential>
</macrodef>
</antlib>
问题是我在style 属性中输入的任何内容都与使用antlib 的项目的basedir 相关,我找不到任何方法来指定相对于antlib.xml 的路径。
有什么想法吗?
我可以将 XSLT 作为一个单独的文件发送,但是我需要为用户提供一些方法来指定 XSLT 的位置,这并不理想(例如,设置 tibant.home 属性)。我也可以使用echoxml 将XSLT 写出到一个临时文件中,但IMO 那是一个hack。
【问题讨论】: