55

ビルド スクリプトがリリースおよび開発環境で適切に動作することを望みます。

このために、私はantでプロパティを定義したいと思います。それを呼び出します(例)fileTargetName

fileTargetName利用可能な場合は環境変数から値を取得しRELEASE_VER、利用できない場合はdevのデフォルト値を取得します

アリ<condition><value></condition><property>それを機能させるためのヘルプは大歓迎です。

4

3 に答える 3

82

環境変数をプロパティに取得する方法のAnt ドキュメントの例:

<property environment="env"/>
<echo message="Number of Processors = ${env.NUMBER_OF_PROCESSORS}"/>
<echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>

あなたの場合、使用します${env.RELEASE_VER}

次に、条件部分については、ドキュメントhereには、3つの可能な属性があると記載されています。

属性の説明 必須
property 設定するプロパティの名前。はい
value プロパティに設定する値。デフォルトは「真」です。いいえ
else 条件が No の場合にプロパティに設定する値
           false と評価されます。デフォルトでは、プロパティは
           未設定のまま。Ant 1.6.3 以降

それを一緒に入れて:

<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
    <isset property="env.RELEASE_VER" />
</condition>
于 2009-06-01T21:24:46.293 に答える
44

これには a を使用する必要はありません<condition>。Ant のプロパティはimmutableであるため、次のように使用できます。

<property environment="env"/>
<property name="env.RELEASE_VER" value="dev"/>

RELEASE_VER環境変数が設定されている場合、プロパティは環境から値を取得し、2 番目の<property>ステートメントは無効になります。それ以外の場合、プロパティは最初のステートメントの後に設定解除され、2 番目のステートメントはその値を に設定します"dev"

于 2009-06-02T17:58:48.677 に答える
1

これよりも簡単な方法があると思いますが、次の方法はどうでしょうか。

<project name="example" default="show-props">

    <property environment="env" />

    <condition property="fileTargetName" value="${env.RELEASE_VER}">
        <isset property="env.RELEASE_VER" />
    </condition>

    <condition property="fileTargetName" value="dev">
        <not>
            <isset property="env.RELEASE_VER" />
        </not>
    </condition>

    <target name="show-props">
        <echo>property is ${fileTargetName}</echo>
    </target>

</project>
于 2009-06-01T21:37:38.310 に答える