2012-04-12 7 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で中括弧

のネスティングが プロパティ展開で括弧のバランスを取るしようとはしません

、それは最初 にテキストを唯一最大消費しますプロパティ名を作成するときには閉じ括弧を使用します。私。 。 - 便利そう何

  • プロパティの拡張$ {B:$ {$ {B}}のような 何かを展開する際には、二つの部分に変換されます第二閉じ括弧

起因する

  • リテラルテキスト}これは、あなたが簡単に使用する名前のプロパティによって与えられた をされているプロパティを展開することはできません意味しますが、古いバージョンのAntの のためのいくつかの回避策があります。 Ant 1.8.0とprops Antlibを使用すると、 機能が必要な場合に、そこに定義されているNestedPropertyExpanderをAnt に設定することができます。

  • したがって、簡単には利用できません。回避策(<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! 
    
    関連する問題