这是我解决它的方法:
想法是将所有属性存储在单独的资源文件中。然后,使用maven 资源插件将相应的属性文件复制到values/environment.xml
在您的项目根目录中创建以下目录结构:
environment/dev/environment.xml
environment/prod/environment.xml
然后用适当的值填充资源文件的内容。
/dev/environment.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="url">http://dev.mysite.com</string>
</resources>
/prod/environment.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="url">http://prod.mysite.com</string>
</resources>
pom.xml
通过指定执行此操作的阶段、要复制的资源和输出目录来添加 maven 资源插件:
//...
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-string-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>environment/${environment}/</directory>
<includes>
<include>environment.xml</include>
<filtering>true</filtering>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
<outputDirectory>${basedir}/res/values/</outputDirectory>
</configuration>
</plugin>
</plugins>
从这一点开始,您可以创建 2 个运行配置:
mvn validate -Denvironment=dev
mvn validate -Denvironment=prod
这只会将适当的资源从evironment/${environment}/environment.xml
, 复制到values/environment.xml
根据运行配置,${environment}
将等于dev
或prod
。
您可以在此页面上找到更多信息。