java - Magnolia 6.0 至少执行 MyModule 的 UpdateTasks

标签 java tomcat content-management-system magnolia

目前我使用这样一个简单的 ModuleVersionHandler :

public class MyModule extends DefaultModuleVersionHandler {

public MyModule() {
    DeltaBuilder v60 = DeltaBuilder.update(".0.0", "Update to 6.0 and new configuration settings.");
    v60.addTask(new BootstrapSingleModuleResource("Module configuration","Default configuration for myModule web.","config.modules.myModule.xml"));
    register(v60);
}


@Override
protected List<Task> getExtraInstallTasks(InstallContext installContext) {
    List<Task> extraTasks = new ArrayList<Task>();
    extraTasks.add(new NewPropertyTask("SiteDefault","Set Default Site Task", RepositoryConstants.CONFIG, "/modules/site/config/site", "extends" , "/modules/myModule/config/myModule/"));
    return extraTasks;
}

我的问题是,如果我将它部署在已清除的工作区@Tomcat 或 Wildfly 中,更新将首先进行处理,因此在这种情况下它将失败,因为 magnolia nodePath/modules/site/config/site 将不存在。

如果我将示例重写到 NodeDelegateTasks 之前进行检查并由我自己或其他构建节点路径并设置 extends 属性的东西创建路径,则以下 magnolia 安装任务将覆盖我的任务。感觉 magnolia 安装任务将删除与/modules/site/* 匹配的先前节点

我如何告诉 Magnolia 至少或在初始化安装 magnolia 之后执行 myModule 任务?

亲切的问候

最佳答案

您可以像@bradley-andersen 建议的那样通过 Maven/Gradle 添加构建依赖项,或者仅将模块作为安装依赖项添加到您的模块描述符 XML 中,如下所示:

<dependencies>
 <dependency>
  <name>core</name>
 <version>3.6.0/*</version>
</dependency>

有关模块描述符的更多信息,请参阅 magnolia 文档:https://documentation.magnolia-cms.com/display/DOCS60/XML-based+module+descriptor#XML-basedmoduledescriptor-Moduledependencies

关于java - Magnolia 6.0 至少执行 MyModule 的 UpdateTasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53901128/

相关文章:

html - 我无法在带有页脚主题的 wordpress 中将 1 行与 3 列分开

php - 将网站从一个域克隆到另一个域

java - android 在尝试绘制到 Canvas 时出现错误

java - log4j:防止重复日志消息的标准方法?

tomcat - 如何找到tomcat网络应用程序的网址?

java - 用于 Windows SSL 实现的 Apache Tomcat 不工作

java - 在 tomcat 上部署简单的 soap web 服务时遇到问题

asp.net - 适用于 Linux 的单声道兼容 CMS

java - 高斯滤波器不影响java中的输入图像

java - 流口水:不止一条规则被触发,我想打印结论(然后是部分),这可能吗?如果不是你有什么建议?