2012-04-12 9 views
7

Mam plik właściwości, który jest generowany przez mój skrypt mrówki podczas wykonywania. I chcę uzyskać dostęp do wartości właściwości z tego generowanego pliku właściwości.Czy można określić wartość właściwości jako właściwość w ant?

Dla np,

wygenerowany plik nieruchomości:

first.prop=abcd 
second.prop=pqrs 

aw skrypcie Próbuję uzyskać dostęp to tak,

Mam nazwę właściwości (że chcę dostęp i jest w wygenerowanym pliku właściwości) z innej własności. Ta właściwość to name.prop. tak,

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

daje

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

jako wyjście odpowiednio. Co może być rozwiązaniem nad tym?

Odpowiedz

8

To z doc:

zagnieżdżania gorsetów

W swojej domyślnej konfiguracji Ant nie będzie starał się zrównoważyć szelki w rozbudowy nieruchomości, będzie zużywać tylko tekst do pierwszego zamknięcie klamry podczas tworzenia nazwy właściwości. To znaczy. przy rozbudowie coś takiego $ {a} $ {b} zostanie on przetłumaczony na dwie części:

  • ekspansji własności $ {b - prawdopodobnie niczego przydatnego.
  • tekst dosłowny} wynikające z drugiego nawiasu zamykającego

Oznacza to, że nie można użyć łatwo rozszerzyć właściwości, których nazwy są podane przez właściwości, ale istnieją pewne obejścia dla starszych wersji z Ant. Dzięki Ant 1.8.0 i props Antlib możesz skonfigurować Ant , aby użyć zdefiniowanego tam NestedPropertyExpander, jeśli potrzebujesz takiej funkcji .

Tak więc nie jest łatwo dostępny. Obejścia (przy użyciu <script /> lub <macrodef /> można znaleźć 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!