У меня проблема с записью свойства, которое содержит значение пути к каталогу в файле свойств.
Мой скрипт первоначально читает это конкретное свойство, назовите его «appserver.home», из файла props, используя <property file="source.props"/>
. Я повторил входящее значение, и оно правильно читается как 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 , то есть оно потеряло escape-символы. Когда следующий скрипт ant использует этот файл, он интерпретирует значение свойства как C: somedirjboss_4_2_3 .
Итак, вопрос, как мне сказать муравью, что значение, которое я пишу, является путем к файлу?
Обратите внимание, я попробовал следующее, что на самом деле работает: -
<propertyfile file="target.props">
<entry key="appServerDir" value="${appserver.home}"/>
</propertyfile>
.. т.е. он выводит имя как c \: \\ somedir \\ jboss4_2_3 , но я бы предпочел не использовать эту технику, а использовать технику файла шаблона, поскольку она содержит некоторые свойства, которые всегда статичны, а также комментарии и т. д.
Заранее спасибо