如何在conf文件夹以及特殊的conf文件位置中查找内容?

时间:2018-09-29 23:03:14

标签: playframework configuration

当我使用参数时:

-Dconfig.file=/path/to/file/file.conf

conf文件夹已从“ conf类路径”中删除,因此play抱怨它找不到位于conf文件夹中的某个conf文件。假设这是问题所在,我该如何在conf文件夹和给定的文件路径中进行播放?

1 个答案:

答案 0 :(得分:1)

在使用Play 2.6的计算机上,我似乎没有这个问题。根据{{​​3}},config.file应该仅指定conf/application.conf的替换项,而不影响整个资源的类路径:

  

这些系统属性指定application.conf的替换项,   没有增加。如果您仍然想使用   application.conf文件,然后您可以在其中添加application.conf   您的其他.conf文件,方法是在页面顶部写入“ "application"”   该文件。

指定config.file后,我们可以使用docs确认对conf/资源的访问,如下所示:

class ResourceImporter @Inject()(environment: Environment) {
  ...
  environment.resource("some-file-in-conf.data")
  ...
}

执行sbt "show unmanagedResources"列出所有资源给出的

play-scala-starter-example git:(2.6.x) ✗ sbt -Dconfig.file=/etc/some.file
...
[play-scala-starter-example] $ show unmanagedResources
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf/logback.xml
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf/application.conf
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf/routes
[success] Total time: 0 s, completed 30-Sep-2018 12:50:59
[play-scala-starter-example] $ 

即使指定了conf/,我们仍然看到config.file仍在类路径上

我们可以像这样conf/ Environment.resourceunmanagedResourceDirectories一起使用unmanagedResourceDirectories in Compile += baseDirectory.value / "extra-resources" 到类路径

[play-scala-starter-example] $ show unmanagedResources
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf/logback.xml
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf/application.conf
[info] * /Users/mgalic/sandbox/play-scala-starter-example/conf/routes
[info] * /Users/mgalic/sandbox/play-scala-starter-example/extra-resources

现在可以提供

A = [['1', '200'],['2', '450'],['3','300']]
B_dict = {int(i[0]): int(i[1]) for i in A}