【发布时间】:2011-03-22 14:01:54
【问题描述】:
我在将保存目录路径值的属性写入属性文件时遇到问题。
我的脚本最初从使用<property file="source.props"/> 的道具文件中读取此特定属性,称为“appserver.home”。我已经回显了传入的值,它正确读取为 C:\\somedir\\jboss_4_2_3。
我的脚本接下来需要做的是将此值提供给另一个属性文件(由另一个 ant 脚本使用 - 尽管这并不重要)。为了创建这个其他文件,我使用了一种模板文件,其中占位符由 $....$ 包围,以在正确的位置插入正确的值,使用以下内容:-
<copy file="template_file.props" tofile="target.props">
<filterset begintoken="$" endtoken="$">
<filter token="appServerDir" value="${appserver.home}"/>
<filter token="dbusername" value="${database.name}"/>
....
</filterset>
</copy>
问题是现在 target.props 中的值是 C:\somedir\jboss_4_2_3 即它丢失了转义字符。当下一个 ant 脚本使用这个文件时,它会将属性值解释为 C:somedirjboss_4_2_3。
那么问题是我如何告诉 ant 我正在写的值是一个文件路径? 请注意,我尝试了以下方法,它确实有效:-
<propertyfile file="target.props">
<entry key="appServerDir" value="${appserver.home}"/>
</propertyfile>
.. 即输出名称为c\:\\somedir\\jboss4_2_3,但我宁愿不使用这种技术,而是使用模板文件技术,因为它包含一些属性它们总是静态的,以及 cmets 等。
提前致谢
【问题讨论】: