2017-05-17 5 views
0

私は自分のantターゲットの1つのロジックをプロパティのソースに依存して変更したいと思っています。 antターゲットの初期化はプロパティのファイルをインポートしますが、プロパティをオーバーライドする場合はコマンドラインで指定します。 antターゲットが、プロパティが初期プロパティファイルかコマンドラインかを知ることは可能ですか?Apache Antターゲットはプロパティがコマンドラインでオーバーライドされたかどうかを検出できますか?

プロパティファイルプロパティ「my.property」を有しており、コマンドラインが表示されている場合:

ant -buildfile buildthis.xml my.target.to.call -Dmy.property=overridesfilevalue 

「my.target.to.callは」かどうかに基づいてロジックを検出して定義することができるであろう"my.property"がコマンドラインから渡されましたか?

答えて

2

Antには、プロパティが設定されているかどうかを確認する条件issetがあります。プロパティファイルを読み込む前にこの条件を実行して、ビルドロジックをその結果に基づいて簡単に実行できます。

例:

<condition property="property.override.detected"> 
    <isset property="property.to.override" /> 
</condition> 

<property file="build.properties" /> 

<target name="do-this-if-the-property-was-overridden" if="property.override.detected"> 
    ... 
</target> 

<target name="do-this-if-the-property-was-not-overridden" unless="property.override.detected"> 
    ... 
</target> 

<target 
    name="default" 
    depends=" 
     do-this-if-the-property-was-overridden, 
     do-this-if-the-property-was-not-overridden" 
/> 
+0

ブリリアント!私は明日それを試してみましょう。お手伝いありがとう! – okorng

+0

あなたの提案どおりに働きました。再度、感謝します。 – okorng

関連する問題