Magnolia 中未更新模块版本

Not updated module version in Magnolia

Magnolia 5.7 中未更新模块版本的可能原因是什么

在 Magnolia java 项目中,我在 META-INF/magnolia/mymodule 中有带有 XML 描述符的子模块。xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module SYSTEM "module.dtd" >
<module>
  <name>mymodule</name>
  <displayName>mymodule</displayName>
  <description>my module</description>
  <version>${project.version}</version>
  <!-- <version>1.3</version> -->
  <dependencies>
    <dependency>
      <name>core</name>
      <version>5.7.4/*</version>
    </dependency>
  </dependencies>

</module>

当我在项目 Maven pom.xml 中使用更改的版本重建整个项目并部署到服务器上时,我在 Magnolia 的 Author 配置控制台中看不到更新的版本。我必须在配置控制台中手动删除旧版本节点(删除 JCR 节点),然后重新启动服务器。完成这些步骤后,我可以在配置控制台中确认新版本。如果您必须部署到多个 dev/stage/prod 环境,这很痛苦,不用说我无法访问生产环境中的 public 实例。

未更新版本的问题听起来并不重要,但我也没有看到与此模块关联的新页面或重命名页面。它们仅在我通过删除版本强制重新加载模块时出现。

一个可能有助于识别问题的附加细节:我可以删除 JCR 中的版本节点,但不能删除整个模块节点。我收到一条错误消息 "Level 1 and 2 nodes in config workspace cannot be unpublished"。

在删除之前,您在 config:/modules/your_module/version 中看到的是什么版本?它是否低于您要安装的版本号?我怀疑它相同或更高。即您正在尝试重新安装相同版本或降级版本。这些都不支持,因此它不会触发安装过程。或者,也许您正在尝试从 SNAPSHOT 升级到没有安装增量的完整版本。

至于您在尝试删除这些节点时收到的警告,这是故意的。您不应该以普通用户的身份删除这些节点,因为您可能会导致相关 (public) 实例的损坏。只有作为管理员(通过 JCR 浏览器),您才可以删除,前提是您知道自己在做什么以及为什么要这样做。