我正在尝试从Appfuse Archetype开始构建应用程序,但是我遇到了一些奇怪的问题。曾经有一次我想使用hsqldb进行自动单元测试和集成测试,并使用mysql db进行手动测试,这样我就可以在需要时轻松操作数据,所以最好自动切换配置文件。测试阶段。有没有办法做到这一点?
答案 0 :(得分:7)
我不确定这是否与您要求的完全相同,但您可以执行以下操作为Maven项目设置多个过滤器。
<filters>
<filter>/your/path/filter-${env}.properties</filter>
</filters>
这样您就可以使用以下方式设置多个配置文件:
<profiles>
<profile>
<id>local</id>
<properties>
<env>local</env>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
</profiles>
然后,您可以使用相应的属性文件运行构建:
mvn -P <profile id>
这需要将属性文件放在:
/your/path/filter-local.properties
/your/path/filter-test.properties
答案 1 :(得分:2)
不确定这是否对您有所帮助,但您可以在/ src / test / resources文件夹中指定备用资源文件,这些文件仅在运行测试时覆盖/ src / main / resources中的文件。
我在此处定义了一个替代的placeholders.properties文件,以指定测试阶段要使用的另一个数据库连接。