我如何才能在 conf 文件夹以及特殊的 conf 文件位置中查看?

How do I get play to look in the conf folder as well a special conf file location?

好像我用参数的时候:

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

conf 文件夹从 'conf classpath' 中删除,因此 play 抱怨它找不到位于 conf 文件夹中的某个 conf 文件。假设这是这里的问题,我怎么能同时在 conf 文件夹和给定的文件路径中播放 look 呢?

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

These system properties specify a replacement for application.conf, not an addition. If you still want to use some values from the application.conf file then you can include the application.conf in your other .conf file by writing include "application" at the top of that file.

指定 config.file 后,我们可以使用 Environment.resource 确认对 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

之后仍然在类路径中

我们可以 add additional resource directories 使用 unmanagedResourceDirectoriesconf/ 旁边的类路径

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