Pergunta

Gostaria que o meu script de construção para agir adequadamente para ambientes de libertação e de desenvolvimento.

Por isso eu gostaria de definir uma propriedade em formiga, chamá-lo (por exemplo) fileTargetName

fileTargetName vai buscá-la de valor a partir da variável de ambiente RELEASE_VER se ele está disponível, se ele não estiver disponível, terá o valor padrão de dev

Ajuda com <condition><value></condition> formiga & <property> para fazê-lo funcionar é apreciado.

Foi útil?

Solução

Um exemplo do Ant documentação de como obter uma variável de ambiente em uma propriedade:

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

No seu caso, você usaria ${env.RELEASE_VER}.

Em seguida, para a parte condicional, a documentação aqui diz que há três atributos possíveis:

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

Colocá-lo juntos:

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

Outras dicas

Você não precisa usar um <condition> para isso. Propriedades em Ant são imutável , assim você pode simplesmente usar este:

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

Se a variável de ambiente RELEASE_VER está definido, então a propriedade terá seu valor do meio ambiente e a segunda instrução <property> não terá nenhum efeito. Caso contrário, a propriedade será desactivado após a primeira declaração, e a segunda instrução irá definir o seu valor para "dev".

Estou certo de que há maneiras mais fáceis do que isso, mas como sobre: ??

<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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top