13

私が欲しいのは、ビルド構成に依存する設定を持つ方法です。具体的な例を挙げると、私のAndroidアプリケーションはWebサービスに接続します。開発では、構成可能な値からサービスURLを取得する必要があります。テストでは、別の値を取得する必要があります。本番環境では、さらに別の値を取得します。

したがって、コードには次のようなものがあります。

public class HttpRequestHelper 
{
    private static String GetServiceUrl(ServiceAction action)
    {
        return serviceUrl + action.toString();
    }
}

デフォルト(Eclipseを介したデバッグ/実行時)では、そのURLをhttp:// localhost:1234にします。

テストではhttps://test.mydomain.comが必要です

本番環境ではhttps://mydomain.comが必要です

私はEclipseとAntに不慣れで、Javaを使用してから長い時間が経ちました。これを設定するにはどうすればよいですか?build.xmlはどのように見えるべきですか?テスト/製品バージョンをビルドするときは、コマンドラインを使用する必要があることを理解しています。大丈夫。しかし、ビルドに応じてこのserviceUrlを自動設定する方法がわかりません。この情報(リソース、プロパティファイル?)を配置するのに最適な場所すらわかりません。設定、構築、設定、構築などは絶対に避けたいです。

4

4 に答える 4

9

上記の回答が示すように、URLをdev.properties、test.properties、prod.propertiesなどのプロパティファイルに配置する必要があります。

今、あなたがする必要があるのは、環境に応じてプロパティファイルを選択するのに十分なインテリジェントなビルドを作成することだけです。

これは、次のようなパラメータをANTに渡すことで実行できます。

$ ant -file MyBuild.xml -DcurrentEnv = dev(開発環境用)
$ ant -file MyBuild.xml -DcurrentEnv = test(テスト用)
$ ant -file MyBuild.xml -DcurrentEnv = prod(本番環境用)

ビルドスクリプト内に、プロパティファイルを含める方法は次のとおりです。

<target name="jarMe">
    <jar destfile="sample.jar" basedir="src" includes="${currentEnv}.properties"/>
</target>

これを設定すると、ビルド時に指定した名前が何であれ、その名前のプロパティファイルが取得されます。

于 2011-02-18T12:25:18.397 に答える
4

build.propertiesファイルに次のプロパティファイルを含めることができます。

service.url=*

また 、開発と統合のテストのために、local.propertiesにhttp:// localhost:1234またはhttps://test.mydomain.comを含めることができ、default.propertiesでhttps://mydomain.comに設定することもできます。

これを行うことにより、異なるビルド環境でservice.urlの異なる値を取得できます。その値を使用して構成ファイルを生成し、それをコードに解析するか、env変数に設定するか、または単にリソースファイルに入れると、Androidがそれを読み取ります。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="service-url">@@toben_to_be_replaced_during_build_time@@</string>
</resources>
于 2011-02-17T17:31:16.553 に答える
2

まず、URLをプロパティファイルに配置し、それをクラスパスに配置することから始めます。テストと本番プロパティファイルを作成します。次に、ビルドに応じて、正しいファイルをクラスパスに配置し、実行時にプロパティをプルします。

于 2011-02-17T17:26:52.920 に答える
0

antを使用してビルドシステムを自動化し、ビルド構成を作成して使用し、1つのコマンドでリリースプロジェクトをビルドするためのすべての詳細を説明するチュートリアルを見つけました。ここにあります:http ://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html

少し長いようですが、関連するすべての手順と詳細を実行します。

于 2011-11-16T23:21:05.803 に答える