3

我们有一个使用 play 框架构建的复杂应用程序。该应用程序分为不同的部分。网站、爬虫和所有其他人都使用类似的类和配置文件。为了解决这个问题,我们将它们集中到播放应用程序根目录的文件夹中。

在开发中,类的 import 语句和 include 语句,加载多个配置文件,工作正常。在生产中,我们曾经部署过 dist 版本的代码,但是所有具有相对路径的包含停止工作。

我们尝试了 -Dconfig.file 来加载父级。该文件已添加到生成的 zip 文件夹中,但找不到包含的文件。

有人知道如何“编译”或集中配置文件以供播放以全部加载吗?

谢谢您的帮助。

4

2 回答 2

1

我遇到了同样的问题,我发现我必须为 -Dconfig.file 指定完整路径,这样它的包含部分才能工作。

IE

/path/to/dir -->
     production.conf = {include "application.conf" and some overrides}
     start
     my-app/

./start -Dconfig.file=/path/to/dir/production.conf

在 play 2.2 中编辑可分发的 zip 结构已更改,现在有一个 bin 目录,其中包含应用程序名称脚本,因此:

    /path/to/dir -->
     production.conf = {include "application.conf" and some overrides}
     bin/my-app

     ./bin/my-app -Dconfig.file=/path/to/dir/production.conf
于 2013-06-17T07:53:06.743 回答
0

所以我不清楚这是如何工作的,但我会尝试解释大局。

为了允许多个项目使用“外部”配置文件,我们创建了另一个项目。这个新项目是一种图书馆。它包含多个项目中使用的所有对象和配置文件。

每个项目都有这个“核心”项目作为依赖项。这允许播放,当我们要求它创建分发包时,将所有代码合并到一个 zip 文件中。

希望这可以帮助。

于 2013-06-18T15:31:49.130 回答