我在我的小Spring Boot项目中有2个application.properties
文件。一个保存在/src/main/resources/application.properties
中,另一个保存在/src/test/resources/application.properties
中。
main中的一些值不一定要出现在test中.
问题:当我清洁的时候->更新项目->在Spring Tool Suite IDE中安装maven,我得到多个
无法解析占位符'JMS_URL'中的值"${JMS_URL}"…等等
但是如果我删除application.propertiestest/src/test/resources/application.properties
错误消失,我得到一个成功的maven安装构建。
我在网上搜索了一下,发现如果出现这个错误,你需要在pom.xml中指定资源目录。
像这样:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
在我的情况下,添加<resource>
块仍然没有解决我的问题,因为它只指定application.properties
在src/main/resources
中的目录,而不是为test指定目录
在main中有2个application.properties
文件,处理这种情况的正确方法是什么?测试和资源文件夹?
请指教。
谢谢。
处理这种情况的正确方法是以不同的方式命名测试属性文件,如application-test.properties
。然后,您可以使用活动的test
配置文件运行测试,或者显式指定
@TestPropertySource("classpath:application-test.properties")
在你的@SpringBootTest
。这两种方法都可以使主application.properties
和application-test.properties
的所有属性都处于活动状态,而后者的属性具有更高的优先级。
保留默认名称(application.properties
)的测试属性文件完全覆盖了主属性文件,正如您可能已经注意到的那样。这样,测试属性文件必须具有与测试工作所需的主属性文件相同的所有必需属性。