Ant regexp.Считать значение совпадающего выражения - PullRequest
0 голосов
/ 02 марта 2010

Мне нужно заменить все вхождения некоторого регулярного выражения в xml-файле правильными значениями, загруженными из файла свойств. Как пример

  • в XML-файле у меня есть < port=${jnpPort}/>
  • в файле свойств у меня есть port=3333

Я хочу иметь xml-файл с записями вроде < port=3333/>

Теперь используется

<replaceregexp match="\$\{(.*)\}" replace="${\1}" flags="g" byline="true">
        <fileset dir="." includes="file.xml"/>
</replaceregexp>

Я получаю почти то же самое <port=${jnpPort} />. Я хотел бы, чтобы значение $ {jnpPort} было прочитано из файла свойств.

Ответы [ 2 ]

0 голосов
/ 02 марта 2010

Попробуйте:

<replaceregexp match="@< port=\${jnpPort}/>@" replace="@< port=$(port)/>@" flags="g" byline="true">
        <fileset dir="." includes="file.xml"/>
</replaceregexp>
0 голосов
/ 02 марта 2010

Вы просто используете копию с набором фильтров

<filterset id="version.properties.filterset" begintoken="$" endtoken="$"> <filter token="jnpPort" value="${port}" /> </filterset>

<copy file="file.xml.template" tofile="file.xml" overwrite="true" > <filterset refid="version.properties.filterset" /> </copy>

Хорошо, не совсем на месте, но довольно хорошо.

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