2008-12-04 3 views
2

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

path=file:C:/tmp/templates 

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

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

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

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

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

path=C:/tmp/templates 

Чирза, Дона

ответ

0

Возможно, вы можете использовать задачу exec ant и системную команду.

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

<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> 

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

+0

К сожалению, это должно работать на окнах и Linux – 2008-12-04 22:17:51

+0

Да, это было бы немного хлопот, если вы не имеете что-то вроде установлен Cygwin на вашей системе Windows. – 2008-12-04 22:31:59

3

В 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 собственности загружается со строкой «файл:» раздели.

Не тестировался, пусть покупатель будет бдителен ...

+0

не поддерживает вложенный 2008-12-05 15:20:26

3

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

path=C:/tmp/templates 
fullpath=file:${path} 
Смежные вопросы