1

さまざまな環境(UAT、ステージング、本番環境など)用に構築する必要のあるAndroidアプリがあります。環境ごとに異なるプロパティ(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}
4

1 に答える 1

6

Antに関するよくある質問は次のとおりです。

どうすれば<property name="prop" value="${${anotherprop}}"/>(プロパティを2倍に拡張する)のようなことができますか?

次の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
于 2012-05-25T01:06:46.737 に答える