0

いくつかの変数と値を含むプロパティ ファイルがあります。

ALL_WAR=*
CONS_WAR=cons-webapp.war
MAJ_WAR=maj-webapp.war
STATS_WAR=stats-webapp.war

スクリプトのパラメーターを読み取って、これらの変数の 1 つの内容を取得したいと考えています。つまり:

次のコマンドでスクリプトを起動します。

ant -f install.xml -Dservice=ALL

私のスクリプトは次のようになります。

インストール.xml

...

<property name="war.file" value="${service}_WAR"/>

...
<copy todir="/tmp/auri">
     <fileset dir="${DELIVER_WEBAPP_DIR}" includes="${${war.file}}"/>
</copy>

${${war.file}} は、プロパティ ファイルで定義された変数の 1 つのコンテンツを取得すると主張しています。それが不可能かどうか、またはそれを行う方法がわかりません。

4

1 に答える 1

0

Ant FAQ double expand propertiesを参照してください。これは、Ant アドオンFlakaを使用したソリューションです。

-Dservice=ALL で始まる

<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- activate flaka property handler -->
<fl:install-property-handler/>

<property name="ALL_WAR" value="all-webapp.war"/>
<property name="war.file" value="${service}_WAR"/>

<echo>#{property[property['war.file']]}</echo>
</project>

出力 => all-webapp.war EL 構文に由来するのドットの代わりに
構文に注意してください。詳細については、 http: //code.google.com/p/flaka/issues/detail?id=17 を参照してください。 .property['...']${...}${war.file}

つまり、war.file の代わりにプロパティ名 warfile を使用すると、次のように記述できます。

<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- activate flaka property handler -->
<fl:install-property-handler/>

<property name="ALL_WAR" value="all-webapp.war"/>
<property name="warfile" value="${service}_WAR"/>

<echo>#{${warfile}}</echo>
</project>
于 2013-04-26T12:11:41.167 に答える