当前位置: 首页 > 面试题库 >

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

周通
2023-03-14
问题内容

我想要的是一种具有依赖于构建配置的设置的方法。举一个具体的例子,我的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。我什至不确定放置此信息的最佳位置(资源,属性文件?)。我真的很想避免设置,构建,设置,构建等。


问题答案:

正如上面提到的答案所说,您必须将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>

有了这个适当的位置,无论您在构建时提供什么名称,都将拾取具有该名称的属性文件。



 类似资料:
  • 从本篇文档开始,我们将介绍 Lavas 构建、运行中使用的配置项。开发者可以在项目根目录下的 lavas.config.js 中定义这些配置项。配置对象的结构大致如下: // lavas.config.js { build: {}, router: {}, middleware: {}, // 省略其他配置项 } Lavas 内部使用 Webpack 进行构建,

  • 我们假设你已经知道,如何为纯客户端 (client-only) 项目配置 webpack。服务器端渲染 (SSR) 项目的配置大体上与纯客户端项目类似,但是我们建议将配置分为三个文件:base, client 和 server。基本配置 (base config) 包含在两个环境共享的配置,例如,输出路径 (output path),别名 (alias) 和 loader。服务器配置 (serve

  • 你怎能一口吃头大象呢?有时你会遇到这种情况,想要从被不同类管理的各种片段构建单一的配置文件。 例如,你可能有两到三个服务需要 rsync 模块配置,因此你不能只发布单一的配置文件 rsyncd.conf。 尽管你可以使用 Augeas,但是一种更简单的方法就是使用 exec 资源将若干配置片段串接成一个文件。 操作步骤 使用如下代码创建 /etc/puppet/modules/admin/mani

  • 我们假设你已经知道,如何为纯客户端(client-only)项目配置 webpack。服务器端渲染(SSR)项目的配置大体上与纯客户端项目类似,但是我们建议将配置分为三个文件:base,client和server。基本配置(base config)包含在两个环境共享的配置,例如,输出路径(output path),别名(alias)和 loader。服务器配置(server config)和客户端

  • Nuxt.js 允许你根据服务端需求,自定义 webpack 的构建配置。 analyze Nuxt.js 使用 webpack-bundle-analyzer 分析并可视化构建后的打包文件,你可以基于分析结果来决定如何优化它。 类型: Boolean 或 Object 默认值: false 如果是 Object 类型, 可以移步 这里 查看可用的属性。 例如 (nuxt.config.js):

  • 我希望调试版本和发布版本有不同的配置。在大多数情况下,配置指的是具有不同的字符串常量, e、 g.连接字符串。此外,我希望有一个运行配置连接到构建配置,这样当我从运行下拉列表中选择“release”时,就会自动构建正确的版本。这可能吗?有没有办法根据构建配置使用不同的字符串资源文件?