7

実行中にantスクリプト自体によって生成されるプロパティファイルがあります。そして、この生成されたプロパティファイルからプロパティの値にアクセスしたいと思います。

たとえば、

生成されたプロパティファイル:

first.prop=abcd
second.prop=pqrs

スクリプトでは、このようにアクセスしようとしていますが、

他のプロパティからのプロパティ名(アクセスしたい、生成されたプロパティファイルにあります)を持っています。そのプロパティはname.propです。それで、

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

与える

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

それぞれ出力として。これに対する解決策は何でしょうか?

4

2 に答える 2

9

これはドキュメントからのものです:

ブレースの入れ子

デフォルトの構成では、Ant はプロパティ展開で中括弧のバランスを取ろうとはしません。プロパティ名を作成するときに、最初の右中括弧までのテキストのみを消費します。つまり、 ${a${b}} のようなものを展開すると、2 つの部分に変換されます。

  • プロパティ a${b の拡張 - 役に立たない可能性があります。
  • 2 番目の右中括弧の結果のリテラル テキスト }

これは、名前がプロパティによって指定された簡単に展開できるプロパティを使用できないことを意味しますが、古いバージョンの Ant にはいくつかの回避策があります。Ant 1.8.0 と小道具 Antlibを使用すると、そのような機能が必要な場合に、そこで定義されている NestedPropertyExpander を使用するように Ant を構成できます。

そのため、簡単には入手できません。回避策 ( <script />orの使用<macrodef />、こちらの公式の ant faq にあります

于 2012-04-12T12:17:23.337 に答える