【发布时间】:2016-08-12 13:23:45
【问题描述】:
我可以看到很多关于环境特定属性的帖子,但没有一个能完全解决我的问题。
我正在开发我的 Spring Boot 应用程序,其中包含两个配置文件 dev/live。
我希望我的项目具有以下结构:
--deployment
--dev
--myapp.properties
--live
--myapp.properties
--src
--main
--java
--resources
--test
--java
我知道如果我的资源文件夹中有两个application.properties,比如application-live.properties 和application-dev.properties,我就可以告诉maven 在应用程序启动时选择哪一个:
Dspring.profiles.active=profile_name
但我不喜欢这个通用属性文件的名称。所以我找到了这种方法来告诉应用程序在哪里寻找 /deployment/<profile>/ 中的配置文件特定属性。
我是使用 Maven 构建任务配置完成的:
<build>
<resources>
<resource>
<directory>deployment/${environment}</directory>
<includes>
<include>*.properties</include>
<include>*.xml</include>
</includes>
</resource>
</resources>
</build>
这将在deployment/<profile> 中搜索资源并包含它们。好消息是 Maven 找到了正确的环境属性文件,但不幸的是它将它们包含在 target/classes/myapp.properties 中,这对于 Spring Boot 来说似乎是不可见的?如何告诉 Maven 将其放在与 application.properties 相同的目录中,或者如何告诉 Spring Boot 找到它当前所在的位置?
非常感谢!
【问题讨论】:
标签: java maven properties spring-boot