【发布时间】:2018-09-30 20:11:06
【问题描述】:
似乎当我使用参数时:
-Dconfig.file=/path/to/file/file.conf
conf 文件夹从“conf 类路径”中删除,因此 play 抱怨它在 conf 文件夹中找不到某个 conf 文件。假设这是这里的问题,我怎么能在 conf 文件夹和给定的文件路径中查看?
【问题讨论】:
标签: playframework configuration
似乎当我使用参数时:
-Dconfig.file=/path/to/file/file.conf
conf 文件夹从“conf 类路径”中删除,因此 play 抱怨它在 conf 文件夹中找不到某个 conf 文件。假设这是这里的问题,我怎么能在 conf 文件夹和给定的文件路径中查看?
【问题讨论】:
标签: playframework configuration
在我的机器上,使用 Play 2.6,我似乎没有这个问题。根据docs config.file 应该只指定conf/application.conf 的替换而不影响整个资源类路径:
这些系统属性指定了
application.conf的替换, 不是补充。如果您仍想使用application.conf文件,然后您可以将application.conf包含在 您的其他.conf文件通过在顶部写入包含"application"那个文件。
指定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 之后仍然在类路径中
我们可以像这样使用unmanagedResourceDirectories add additional resource directories 到 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
【讨论】:
application.conf 中的一些值,所以包含它就可以了。我指的是application.conf 中的一个conf 文件,它位于conf 目录中,但找不到:Caused by: java.lang.IllegalArgumentException: requirement failed: Key store file conf/certs/local.cert does not exist!。因此,如果conf dir 仍在类路径中,有什么线索可以说明我可能在这里遗漏了什么吗?
conf/,即指定certs/local.cert 而不是conf/certs/local.cert?