从 FS magnolia 5.7.9 加载模块配置文件

Load module configuration file from FS magnolia 5.7.9

我需要了解在什么条件下从文件系统 (FS) 加载模块配置文件。具体来说,我想知道为什么 config.yaml 文件没有加载到配置中? 这里是我src/main/resources/<magnolia-module-name>/config.yaml根据描述的文件模块结构here and here.

'config':
  'gitRepoDirectory': '/Users/asusti/jGit/'
  'tempVersionDirectory': '/Users/asusti/temp/'
  'excludes':
    'green': 'green'
    'red': 'red'

我从模块配置中将此配置文件导出为 yaml,并将其复制到上述文件位置。

我也根据示例 here:

尝试使用这样的 config.yaml
gitRepoDirectory: /Users/asusti/jGit/
excludes:
   green: green
   red: red

为了对此进行测试,我从 config/modules/<magnolia-module-name> 下的配置应用程序中删除了 config content node 并重新启动了 magnolia 实例。我错过了什么?

我是运行玉兰5.7.9.

更新:

按照建议 here 我将 config.yaml 添加到 src/main/resources/mgnl-bootstrap/<magnolia-module-name>/config.modules.<magnolia-module-name>.config.yaml,内容如下。

'config':
  'gitRepoDirectory': '/Users/asusti/jGit/'
  'jcr:primaryType': 'mgnl:content'
  'excludes':
    'green': 'green'
    'red': 'red'

配置文件夹和下面的属性和节点没有安装在配置中。

解决方案: 对于引导程序,我找到了文档 here 根据该文档:

All bootstrap files are only imported once!

    Webapp-based bootstrap files are imported during the first run of the webapp when the Magnolia instance gets installed.
    Module-based bootstrap files are imported during the installation of the module.

If you want to import bootstrap files on every start up of the Magnolia instance or of a module, you must use custom installation tasks which are executed by the Module version handler or Module start up classes.

我认为这是因为您检查了错误的文档。请参考 https://documentation.magnolia-cms.com/display/DOCS57/

中的 5.7 文档

如果我没记错的话,该功能是从 6.1 版本开始实现的。

您要查找的页面如下:https://documentation.magnolia-cms.com/display/DOCS57/Module+configuration#Moduleconfiguration-ConfiguringinJCRvsYAML

注意那里的 bean 定义。

你正在混合两种东西。您可以拥有 yaml 格式的 bootstrap 文件(这是您的代码片段的第一个和第三个),并且您可以在运行时从 config.yaml 文件加载模块配置(这是第二个代码片段的格式)。

对于在运行时从yaml文件加载模块配置的情况,你应该不需要删除整个模块并强制重新安装,你只需要在放置[=后删除jcr中的config子节点。 11=] 指定位置的文件。然后,您将不会 在 jcr 中看到 配置,但可以通过模块 class 中的代码查询它或在定义应用程序中看到它。

由于 JCR 配置覆盖来自文件的配置,只要您在 JCR 的 module 节点中有 config 节点,它将覆盖来自 FS 的属性值。