2012-04-12 9 views
7

Ho un file di proprietà che viene generato dal mio script ant stesso durante l'esecuzione. E voglio accedere al valore delle proprietà da questo file di proprietà generato.E 'possibile specificare il valore della proprietà come proprietà nella formica?

Per esempio,

file generato Proprietà:

first.prop=abcd 
second.prop=pqrs 

e in scrittura, sto cercando di accedere in questo modo,

Sto avendo un nome di proprietà (che voglio accesso e si trova nel file di proprietà generato) da qualche altra proprietà. Quella proprietà è name.prop. così,

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

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

rispettivamente come uscita. Quale può essere la soluzione per questo?

risposta

8

Questo è dal doc:

annidamento di parentesi graffe

Nella sua configurazione predefinita Ant non cercare di bilanciare le parentesi in espansioni di proprietà, sarà solo consumare il testo fino alla prima chiusura brace durante la creazione di un nome di proprietà. Cioè quando l'espansione qualcosa come $ {a $ {b}} sarà tradotto in due parti:

  • l'espansione della proprietà un $ {b - probabilmente nulla di utile.
  • il testo letterale} risultante dalla seconda parentesi graffa di chiusura

Questo significa che non è possibile utilizzare facilmente espandere le proprietà i cui nomi sono data dalla proprietà, ma ci sono alcune soluzioni per le versioni più vecchie di Ant. Con Ant 1.8.0 e props Antlib è possibile configurare Ant per utilizzare NestedPropertyExpander definito lì se è necessaria una tale funzione .

Quindi non è disponibile facilmente. Soluzioni alternative (utilizzando <script /> o <macrodef /> possono essere trovati 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! 
Problemi correlati