2011-02-17 74 views
13

我想要的是一種設置依賴於構建配置的方法。舉個具體的例子,我的android應用程序連接到一個web服務。在開發中,我希望將服務url從可配置的值中拉入。在測試中,我想要一個不同的值。在生產中,還有另一個值。Android - 使用ant創建更改配置值的構建配置

所以,在代碼中,我有這樣的事情:

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

我是新來的日食和螞蟻,它已經很長一段時間,因爲我我們ed java。我該如何着手設置? build.xml應該是什麼樣的?我明白,當我想構建測試/產品版本時,我需要使用命令行。沒關係。但我不知道如何獲得這個serviceUrl自動設置依賴於構建。我甚至不確定放置這些信息的最佳位置(資源,屬性文件?)。我真的想要避免設置它,建設,設置它,建設等。

回答

9

由於上面提到的答案說,你必須把URL放在一個屬性文件中,比如dev.properties,test.properties,prod.properties等。

現在你唯一需要做的就是讓你的構建足夠聰明以選擇屬性文件取決於環境。

,可以通過將參數傳遞給ANT來完成,像這樣:

$螞蟻-file MyBuild.xml -DcurrentEnv = DEV(對於開發環境)
$螞蟻-file MyBuild.xml -DcurrentEnv =測試(For Test)
$ ant -file MyBuild。XML -DcurrentEnv = PROD(用於生產)

內部構建腳本,這是你可以包括你的屬性文件:

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

有了這個地方,你提供在構建時什麼名字,該名稱的財產文件將被拿起。

2

我會開始把網址放到一個屬性文件中,然後放到類路徑中。做一個測試和一個生產屬性文件。然後根據構建將正確的文件放置到類路徑中,並在運行時拖動屬性。

4

你可以嘗試在你的build.properties文件中的以下屬性文件:

service.url=* 

而且你可以在local.properties爲您的開發和集成測試http://localhost:1234https://test.mydomain.com,並且它可以被設置到default.properties中的https://mydomain.com

通過這樣做,您將在不同的構建環境中獲得不同的service.url值。你可以使用該值來生成一個配置文件,並將其解析到你的代碼,或將其設置爲環境變量,或者只是把它變成一個資源文件,Android將讀給你:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="service-url">@@[email protected]@</string> 
</resources>