繁体   English   中英

Ant中属性文件中的变量

[英]Variables from properties file in Ant

我有一个Android应用程序,需要针对不同的环境(例如UAT,登台,生产等)构建。 每个环境需要不同的属性(例如,URL,程序包等)。

我想将所有不同的参数放入单个属性文件中,并为每个参数加上与之匹配的环境的前缀。

例如,属性文件将包含dev.home-url = http://home_dev.com的开发环境和prod.home-url = http://home.com用于生产环境。

我使用以下代码创建一个属性,该属性指向带有params前缀的属性文件:

<property file="parameters.properties" prefix="params" />

为了使用属性,我使用:

${params.home-url}

当我需要将环境的前缀添加到参数时,问题就来了。 最终看起来像这样,显然无法完成:

${params.${env-prefix}.home-url}

关于Ant的一个常见问题是:

我该如何做类似<property name="prop" value="${${anotherprop}}"/> (双重扩展属性)的事情?

以下Ant构建文件受该FAQ启发。

parameters.properties

dev.home-url = http://home_dev.com
prod.home-url = http://home.com

build.xml

<project default="example">
    <property name="env-prefix" value="dev" />
    <property file="parameters.properties" prefix="params" />

    <macrodef name="propertycopy">
        <attribute name="name" />
        <attribute name="from" />
        <sequential>
            <property name="@{name}" value="${@{from}}" />
        </sequential>
    </macrodef>

    <target name="example">
        <propertycopy name="local.property" from="params.${env-prefix}.home-url" />
        <echo>${local.property}</echo>
    </target>
</project>

执行example任务输出:

Buildfile: /workspace/build.xml
example:
     [echo] http://home_dev.com
BUILD SUCCESSFUL
Total time: 405 milliseconds

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM