Android - 使用ant创建更改配置值的构建配置

Jos*_*osh 13 java ant build-automation android buildconfiguration

我想要的是一种具有依赖于构建配置的设置的方法.举一个具体的例子,我的android应用程序连接到Web服务.在开发中,我希望从可配置的值中提取服务URL.在Test中,我希望获得不同的值.在生产中,还有另一个值.

所以,在代码中我有这样的东西:

public class HttpRequestHelper 
{
    private static String GetServiceUrl(ServiceAction action)
    {
        return serviceUrl + action.toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

默认情况下(调试/运行eclipse时),我希望该URL为http:// localhost:1234

在测试中我想要https://test.mydomain.com

在制作中我想要https://mydomain.com

我是eclipse和ant的新手,自从我使用java以来​​已经很久了.我该如何设置呢?build.xml应该是什么样的?据我所知,当我想构建test/prod版本时,我需要使用命令行.没关系.但我不知道如何使这个serviceUrl自动设置依赖于构建.我甚至不确定放置此信息的最佳位置(资源,属性文件?).我真的想避免设置,构建,设置,构建等.

Vic*_*cky 9

正如上面提到的答案所说,你必须将URL放在dev.properties,test.properties,prod.properties等属性文件中.

现在,您唯一需要做的就是让您的构建足够智能,根据环境选择属性文件.

这可以通过将参数传递给ANT来完成,例如:

$ ant -file MyBuild.xml -DcurrentEnv = dev(适用于开发环境)
$ ant -file MyBuild.xml -DcurrentEnv = test(For Test)
$ ant -file MyBuild.xml -DcurrentEnv = prod(For Production)

在构建脚本中,这是您可以包含属性文件的方式:

<target name="jarMe">
    <jar destfile="sample.jar" basedir="src" includes="${currentEnv}.properties"/>
</target>
Run Code Online (Sandbox Code Playgroud)

有了这个,无论您在构建时提供什么名称,都会选择具有该名称的属性文件.