2012-04-12 87 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

牙套

在默認配置下螞蟻的​​嵌套不會嘗試在 財產擴展到平衡支架,它只會消耗文本到第一 在創建屬性名稱時關閉大括號。即擴大 類似$ {時一個$ {B}}將被翻譯成兩個部分:

  • 財產擴張$ {B - 可能沒什麼用處。
  • 的文字文本}從第二大括號

導致這意味着你不能使用很容易地擴展他們的名字是由性能給出 性質,但也有一些變通辦法較舊版本的螞蟻 。使用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! 
相關問題