仅在Intellij中运行的resthub引导的maven java项目的生产环境中使用自定义database.properties文件
我正在使用它来引导我的spring主干网络应用程序 根据。它们已经有一个默认的数据库属性文件 到目前为止一切正常,但我必须在heroku上部署该项目,它有不同的dbname、port和其他设置 要覆盖resthub提供的默认db属性,可以在类路径中创建名为仅在Intellij中运行的resthub引导的maven java项目的生产环境中使用自定义database.properties文件,java,maven,heroku,maven-profiles,resthub,Java,Maven,Heroku,Maven Profiles,Resthub,我正在使用它来引导我的spring主干网络应用程序 根据。它们已经有一个默认的数据库属性文件 到目前为止一切正常,但我必须在heroku上部署该项目,它有不同的dbname、port和其他设置 要覆盖resthub提供的默认db属性,可以在类路径中创建名为database.properties的文件。但我希望该文件仅用于在heroku上部署 我应该如何继续配置它,使其在intellij上以默认db属性本地工作,但占用heroku的database.properties 我已经读过Maven概要
database.properties
的文件。但我希望该文件仅用于在heroku上部署
我应该如何继续配置它,使其在intellij上以默认db属性本地工作,但占用heroku的database.properties
我已经读过Maven概要文件,但它讨论了如何为不同的环境创建不同的文件,我希望不要为特定的环境创建特定的文件,而是使用其中一个resthub JAR中提供的默认文件
更新
刚刚通过
resthub mongodb
配置文件总是旧的,在生产的情况下(由-Dprod=true
标识),加载名为heroku
的新配置文件,然后依次加载prod\database.properties
<context:property-placeholder location="classpath*:prod/database.properties"/>
但是我猜与mongo相关的bean已经使用resthub mongodb
中定义的属性定义了&因此,加载heroku
配置文件来更改db属性是行不通的
在这种情况下,解决方案是什么
可能的解决办法
现在,我最终使用了一个概要文件-heroku
或resthubmongodb
,具体取决于系统属性
还有其他方法吗?您可以让maven通过资源配置来处理您的环境 添加您的pom或父pom:
<env>local</env>
...
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/main/config/${env}</directory>
<filtering>false</filtering>
</resource>
</resources>
将-Denv=heroku
选项添加到任何maven命令运行将在类路径中添加所有config/
目录内容<代码>本地是默认环境,如果未提供任何选项,则使用该环境
src/
main/
config/
local/
heroku/
database.properties