читать значение свойства в Ant - PullRequest
2 голосов
/ 05 декабря 2008

Мне нужно прочитать значение свойства из файла в скрипте Ant и удалить первые несколько символов. Собственность, о которой идет речь,

path=file:C:/tmp/templates

Это свойство хранится в файле, к которому я могу получить доступ в скрипте ant с помощью

<property file="${web.inf.dir}/config.properties"/>

У меня два вопроса:

  1. Как мне прочитать единственное свойство 'path' из загруженного файла свойств?
  2. Как удалить начальный 'file:' из значения свойства?

В конечном счете, я хотел бы иметь доступ к следующей паре имя-значение в скрипте Ant:

path=C:/tmp/templates

Ура, Дон

Ответы [ 4 ]

3 голосов
/ 24 сентября 2009

Как насчет простого изменения файла свойств, чтобы вы могли получить доступ как к полному, так и к простому пути?

path=C:/tmp/templates
fullpath=file:${path}
3 голосов
/ 05 декабря 2008

В Ant 1.6 или более поздней версии вы можете использовать LoadProperties с вложенным FilterChain

<loadproperties srcFile="${property.file.name}">
  <filterchain>
    <tokenfilter>
      <containsstring contains="path=file:"/>
      <replaceregex pattern="path=file:" replace="path=" flags=""/>
    </tokenfilter>
  </filterchain>
</loadproperties>

Это должно привести к загрузке свойства path со строкой "file:" stripped.

Не проверено, будьте бдительны ...

2 голосов
/ 05 декабря 2008

Я использовал задачу propertyregex из Ant Contrib , чтобы сделать нечто подобное.

0 голосов
/ 05 декабря 2008

Вы, вероятно, могли бы использовать задачу exec муравья и системную команду.

Я написал это быстро, чтобы проверить концепцию:

<target name="foo">
  <property name="my.property" value="file:C:/foo/bar"/>
  <exec executable="/bin/cut" inputstring="${my.property}" outputproperty="new.property">
    <arg line="-d':' -f2-"/>
  </exec>
  <echo message="FOO: ${new.property}"/>
</target>

К сожалению, это работает только в том случае, если вы можете собрать систему с / bin / cut или каким-либо другим исполняемым файлом, который вы можете использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...