Ant & как разобрать файл свойств, чтобы отобразить значения
У меня есть файл свойств, который я хочу отобразить значения
<HSMKeys>
<Key domain="default" value="TestA" />
<Key domain="fixed" value="TestB" />
</HSMKeys>
как
[echo] domain=default value=TestA
[echo] domain=fixed value=TestB
Как я могу это сделать, то есть зациклить файл свойств и иметь две переменные, которые будут в эхо.
Я пробовал следующее
<for list="${HSMKeys.Key.domain}" param="domain">
<sequential>
<echo>domain=@{domain}</echo>
</sequential>
</for>
т.е. я могу получить только одно значение атрибута за раз, а не оба сразу.
Благодарю.
2 ответа
Как сказал @thekbb, это не файл свойств, однако ANT поддерживает синтаксический анализ файлов XML как свойств.
<project name="demo" default="print">
<xmlproperty file="properties.xml"/>
<target name="print">
<echoproperties prefix="HSMKeys."/>
</target>
</project>
Производит следующий вывод:
print:
[echoproperties] #Ant properties
[echoproperties] #Tue Dec 03 23:44:14 GMT 2013
[echoproperties] HSMKeys.Key=,
[echoproperties] HSMKeys.Key(domain)=default,fixed
[echoproperties] HSMKeys.Key(value)=TestA,TestB
Может быть не совсем то, что вам нужно, но имеет то преимущество, что не требует дополнительных jar, таких как Ant-contrib.
Это не файл свойств. Файлы свойств представляют собой пары ключ / значение. Как вы заселены list
?
файл свойств, который будет понимать муравей, будет выглядеть так:
domain.default=TestA
domain.fixed=testB
Я рекомендую избегать ant-contrib любой ценой... что вы на самом деле пытаетесь сделать? Вы могли бы просто использовать echoproperties
<project name="test" default="echo" basedir=".">
<property file="build.properties" />
<target name="echo" >
<echoproperties prefix="domain."/>
</target>
</project>