web-dev-qa-db-ja.com

デフォルト値で環境からantプロパティを定義します

ビルドスクリプトがリリースおよび開発環境に対して適切に機能するようにしたいと思います。

このために、antでプロパティを定義し、呼び出します(例)fileTargetName

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

Ant <condition><value></condition><property>を使用して、機能するようにしてください。

52
Maxim Veksler

環境変数をプロパティに取得する方法の 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プロパティに設定する値。デフォルトは「true」です。いいえ
 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>
76
Michael Myers

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

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

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

40
Jason Day

私はこれよりも簡単な方法があると確信していますが、どうですか:

<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>
1
toolkit