我的Play模块的配置未加载。
我的构建和配置文件的项目结构如下:
/project/modules/my_module/build.sbt
/project/modules/conf/my_conf.conf
我用:
运行项目cd /project/modules/my_module
sbt "run -Dconfig.resource=conf/my_conf.conf"
当我读取设置时,它为空:
String mySetting = Play.application().configuration().getString("my_setting")
从调试应用程序开始,我的设置似乎都没有加载到Play.application.configuration()
。
我使用System.getProperty("user.dir")
来验证工作条件是/project/modules/my_module/
,因此conf/my_conf.conf
应该是正确的路径。有任何建议如何解决这个问题?
答案 0 :(得分:3)
您的类路径中没有默认配置文件application.conf
,尝试将my_conf.conf
重命名为application.conf
并使用sbt run
运行您的应用,或者如果您使用的是自定义配置文件,按照以下步骤加载文件
使用-Dconfig.resource
这将在应用程序类路径中搜索备用配置文件(通常在打包之前将这些备用配置文件提供到应用程序conf /目录中)。播放将调查conf / ,因此您无需添加conf /.
$ /path/to/bin/<project-name> -Dconfig.resource=prod.conf
因此请尝试使用sbt run -Dconfig.resource=my_conf.conf
这两个播放文档将帮助您更好地了解 https://www.playframework.com/documentation/2.6.x/ConfigFile https://www.playframework.com/documentation/2.6.x/ProductionConfiguration