Вопрос по android – Переменные из файла свойств в Ant

1

У меня есть приложение для 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}

Ваш Ответ

1   ответ
6

Часто задаваемый вопрос об Ant:

Как я могу сделать что-то вроде<property name="prop" value="${${anotherprop}}"/> (double expanding the property)?

Следующий файл сборки 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
Error: User Rate Limit Exceeded Stimsoni
Error: User Rate Limit Exceededenv-prefixError: User Rate Limit Exceededfrom="params.${params.env-prefix}.home-url".
Error: User Rate Limit Exceededenv-prefixError: User Rate Limit Exceededant -Denv-prefix=dev.
Error: User Rate Limit Exceeded Stimsoni
Error: User Rate Limit Exceeded${params.dev.home-url}Error: User Rate Limit Exceeded<echo>${ant.version}</echo>Error: User Rate Limit Exceeded

Похожие вопросы