【发布时间】:2013-07-09 10:50:58
【问题描述】:
假设我在pom.xml 文件中声明了以下属性。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org
/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
// ....
<properties>
<dev.url>http://dev.mysite.com</dev.url>
<staging.url>http://staging.mysite.com</staging.url>
<prod.url>http://prod.mysite.com</prod.url>
</properties>
</project>
我想做的是有不同的运行配置,并根据我设置的一些标志来读取相应的属性。例如,在为生产构建时,在运行时读取prod.url 属性,在为暂存构建时,读取staging.url 属性。
【问题讨论】:
-
这不是放置属性的正确位置。把它们放在android资源中。
-
您可以制作一个脚本,每次构建项目时将您的 pom.xml 文件复制到 assets 文件夹中。然后您就可以解析它了
-
@njzk2 这个想法是这个属性对于不同的环境(构建、生产、登台)会有所不同。理想情况下,我会有不同的运行配置,启动时会读取相应的属性。如果我将它们放在 Android 资源中,有没有办法可以从运行配置中传递一个标志,以便在运行时选择适当的资源(无需手动编辑代码和更改环境)?
-
我不确定 pom.xml 是否被打包到 .apk 文件中?我想您应该在 IDE 中定义各种运行配置并在那里设置参数。但我不确定它是否会起作用
-
@AndyRes,看看答案here 是否有帮助。总结一下,在 pom.xml 中定义你的属性,在 strings.xml 中定义一个占位符,并在项目构建图块中使用资源过滤替换 strings.xml 中的占位符。