wake-up-neo.net

definieren Sie die Eigenschaft ant aus der Umgebung mit dem Standardwert

Ich möchte, dass mein Build-Skript für Release- und Entwicklungsumgebungen ordnungsgemäß funktioniert.

Zu diesem Zweck möchte ich eine Eigenschaft in ant definieren, nennen Sie sie (z. B.) fileTargetName.

fileTargetName erhält ihren Wert von der Umgebungsvariablen RELEASE_VER, falls verfügbar, falls nicht verfügbar, wird der Standardwert von dev verwendet.

Helfen Sie mit Hilfe von ant <condition><value></condition> & <property>, damit es funktioniert.

51
Maxim Veksler

Ein Beispiel aus der Ant-Dokumentation , wie eine Umgebungsvariable in eine Eigenschaft aufgenommen wird:

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

In Ihrem Fall würden Sie ${env.RELEASE_VER} verwenden.

Zum bedingten Teil sagt die Dokumentation hier , dass es drei mögliche Attribute gibt:

 Attribut Beschreibung Erforderlich 
 Property Der Name der zu setzenden Eigenschaft. Ja 
 Wert Der Wert, auf den die Eigenschaft festgelegt werden soll. Der Standardwert ist "true". Nein 
 Else Der Wert, auf den die Eigenschaft festgelegt werden soll, wenn die Bedingung Nein 
 wird als falsch ausgewertet. Standardmäßig wird die Eigenschaft 
 bleiben unset Seit Ant 1.6.3 

Etwas zusammensetzen:

<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
    <isset property="env.RELEASE_VER" />
</condition>
76
Michael Myers

Sie müssen dafür keinen <condition> verwenden. Eigenschaften in Ant sind unveränderlich , Sie können also Folgendes verwenden:

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

Wenn die Umgebungsvariable RELEASE_VER festgelegt ist, erhält die Eigenschaft ihren Wert aus der Umgebung, und die zweite <property>-Anweisung hat keine Auswirkungen. Andernfalls wird die Eigenschaft nach der ersten Anweisung nicht gesetzt, und die zweite Anweisung setzt ihren Wert auf "dev".

40
Jason Day

Ich bin sicher, dass es einfachere Wege gibt, aber wie wäre es mit:

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