Frage

Ich würde meinen Build-Skript wie richtig für die Freigabe und Entwicklungsumgebungen zu handeln.

Dazu möchte ich eine Immobilie in ant definieren, nennen Sie es (zum Beispiel) fileTargetName

fileTargetName erhalten, es ist Wert aus der Umgebungsvariablen RELEASE_VER, wenn es verfügbar ist, wenn es nicht verfügbar ist, wird es den Standardwert von dev

get

Hilfe für Ameise <condition><value></condition> & <property>, um es zu schätzen wissen zu arbeiten.

War es hilfreich?

Lösung

Ein Beispiel aus der Ant Dokumentation , wie man eine Umgebungsvariable in eine Eigenschaft:

<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.

Dann für den bedingten Teil der Dokumentation hier sagt, dass es drei mögliche Attribute:

Attribute  Description                                             Required 
property   The name of the property to set.                        Yes 
value      The value to set the property to. Defaults to "true".   No 
else       The value to set the property to if the condition       No
           evaluates to false. By default the property will
           remain unset. Since Ant 1.6.3

Um es zusammen:

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

Andere Tipps

Sie brauchen keine <condition> dafür zu verwenden. Immobilien in Ant sind unveränderlich , so können Sie dies nur verwenden:

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

Wenn der RELEASE_VER Umgebungsvariable gesetzt ist, dann wird die Eigenschaft ihren Wert aus der Umwelt erhalten und die zweiten <property> Anweisung keine Wirkung. Andernfalls wird die Eigenschaft nach der ersten Anweisung nicht gesetzt sein, und die zweite Aussage wird seinen Wert auf "dev".

Ich bin sicher, es gibt einfachere Wege als das, aber wie:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top