我如何才能在 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 使用 unmanagedResourceDirectories
到 conf/
旁边的类路径
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
好像我用参数的时候:
-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 theapplication.conf
file then you can include theapplication.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 使用 unmanagedResourceDirectories
到 conf/
旁边的类路径
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