2012-04-12 4 views
7

У меня есть файл свойств, который создается во время выполнения моего скрипта ant. И я хочу получить доступ к значению свойств из этого сгенерированного файла свойств.Можно ли указать значение свойства как свойство в ant?

Для например,

сгенерированного файла Свойство:

first.prop=abcd 
second.prop=pqrs 

и в сценарии, я пытаюсь получить доступ к нему, как это,

Я имею имя свойства (что я хочу доступ и находится в файле сгенерированных свойств) из некоторого другого свойства. Это свойство name.prop. так,

<echo message="${name.prop}"/> 
<echo message="${${name.prop}}"/> 

дает

first.prop 
${${name.prop}} 

в качестве выходного сигнала соответственно. Что может быть решением этого?

ответ

8

Это из doc:

вложенности брекеты

В конфигурации по умолчанию Ant не будет пытаться сбалансировать фигурные скобки в расширении собственности, то это будет только потреблять текст до первого закрывая скобу при создании имени свойства. То есть при расширении что-то вроде $ {а $ {Ь}} она будет переведена на две части:

  • расширительного имущества в размере $ {б - скорее всего, ничего полезного.
  • буквальный текст} в результате второго закрывающей фигурной

Это означает, что вы не можете использовать легко расширить свойства, имена которых дается свойствами, но есть некоторые обходные пути для старых версий из Ant. С Ant 1.8.0 и props Antlib вы можете настроить Ant для использования там NestedPropertyExpander, если вам нужна такая функция .

Таким образом, он не доступен легко. Обходные (с использованием <script /> или <macrodef /> можно найти here in the official ant faq.

0
I tried this, to get similar values<br/> 
prop.properties contains: 

a=val1 
b=val2 
c=val3 
batch.props=a,b,c 

<for list="${batch.props}" param="prop"> 
    <sequential> 
    <echo>@{prop} is ${[email protected]{prop}}</echo> 
    </sequential> 
</for> 

Got Ans as below: 
a is val1 
b is val2 
c is val3 

Enjoy! 
Смежные вопросы