Playframework 从Play framework中的外部目录读取配置文件

Playframework 从Play framework中的外部目录读取配置文件,playframework,sbt,Playframework,Sbt,我知道将application.conf放在应用程序之外有无数的问题,通过使用config.file系统属性来回答,但我们的情况不同 我们有一个Play应用程序,它使用一个库,从类路径中读取自己的配置文件/sys config.xml。无法将其配置为使用其他路径。问题是我们希望它在部署之外,所以我们不能将它放在conf/中,也不能只设置config.file。我们需要在类路径中添加一个任意目录,以便Play应用程序在查找资源时拾取和查找。我尝试设置类路径,但它看起来要么被忽略,要么没有被Acti

我知道将
application.conf
放在应用程序之外有无数的问题,通过使用
config.file
系统属性来回答,但我们的情况不同


我们有一个Play应用程序,它使用一个库,从类路径中读取自己的配置文件
/sys config.xml
。无法将其配置为使用其他路径。问题是我们希望它在部署之外,所以我们不能将它放在
conf/
中,也不能只设置
config.file
。我们需要在类路径中添加一个任意目录,以便Play应用程序在查找资源时拾取和查找。我尝试设置
类路径
,但它看起来要么被忽略,要么没有被Activator/SBT传递。

结果表明这只是一个SBT问题,您只需要向
externalDependencyClasspath
添加一些内容,您可以从所选的系统属性中获取这些内容

externalDependencyClasspath in Runtime ++= sys.props.get("config.dir")
  .map(f => Seq(file(f)))
  .getOrElse(Nil)

我们现在可以运行
/activator-Dconfig.dir=/var/xyz run
,它将在该目录中找到
application.conf
sys config.xml

结果表明这只是一个SBT问题,您只需要向
externalDependencyClasspath
添加一些内容,您可以从所选的系统属性中获取这些内容

externalDependencyClasspath in Runtime ++= sys.props.get("config.dir")
  .map(f => Seq(file(f)))
  .getOrElse(Nil)
我们现在可以运行
/activator-Dconfig.dir=/var/xyz run
,它将在该目录中找到
application.conf
sys config.xml