Magnolia 模块不包括代码更改

Posted

技术标签:

【中文标题】Magnolia 模块不包括代码更改【英文标题】:Magnolia Module a code change is not included 【发布时间】:2016-12-06 09:35:23 【问题描述】:

我在调整模块时遇到了麻烦。 我正在使用 vanityUrl 模块并对其进行了调整以满足我的需求。它在我对 java 代码的所有改编中都能正常工作。 但是因为一个重复的代码sn-p,anchor-tag被加了两次。我修复了代码,但未在部署的服务器上更新更改。我在本地再次运行它,并没有在那里进行修复,所以我开始调试并使用了重复的代码。但经过更深入的调试后,它被修复了,我的修复工作了。因为服务器在我的范围之外,我无法远程调试它。所以我用这个任务对模块的更新任务进行了尝试:

DeltaBuilder update142 = DeltaBuilder.update("1.4.2", "Update to version 1.4.2"); update142.addTask(new BootstrapSingleModuleResource("Bootstrap new config", "Bootstrap folder/type definition in app.", "config.modules.magnolia-vanity-url.apps.vanityUrl.xml")); register(update142);

在本地测试它再次起作用。但是在服务器上,更新了版本号,但仍然使用重复的代码。

在我看来,我可以通过删除模块来修复它,进行全新安装,再次添加模块,然后再次进行全新安装。但是因为我无法访问服务器来制作这个,所以我正在寻找另一种使用固定代码制作模块的可能性。

很高兴得到任何帮助。

在此先致谢并致以最诚挚的问候,

托尼奥

【问题讨论】:

如果我理解正确,您的模块已经安装,但您必须使用新版本更新重新安装它?这就是你最终想要达到的目标吗? 我进一步考虑了,您可以通过版本更新轻松删除节点或属性。请让我知道您的需求,然后我可以为您指出正确的任务。欢呼 远程服务器上的模块版本是多少?是不是小于1.4.2?添加重复标签的代码在哪里?你把它从服务器上删除了吗?还是在执行更新任务后它仍然存在并且可能执行,从而恢复您的更改并重新插入重复项? 在我更新到版本 1.4.2 之前,该修复已在服务器上,但没有任何效果。目前正确的代码和版本 1.4.2 在服务器上,但修复不起作用(在本地它可以正常工作)。 @ Ducaz035 是的,模块已经安装,但我想让我的修复在服务器上工作(目前固定代码在那里,但不起作用)。删除一个节点对我没有帮助,因为修复是在一个 java 类中,所以它在 magnolia 上不可见。 @Jan 服务器上的版本是 1.4.2 并且重复的代码被替换为服务器上的修复程序。修复后才更新,但只更新了一次就更新了整个模块,但并没有像我想象的那样工作。 【参考方案1】:

好的,现在我明白为什么任务没有执行了,首先你的版本已经设置为 1.4.2,所以 Magnolia 不会认为它是更新,因为它只是实例上的相同版本。您应该转储模块的版本并使用该升级版本注册增量,例如1.4.3 在你的情况下。

【讨论】:

更新应该可以了,因为我没有更改 magnolia 上的版本号,它是由更新到 1.4.2 更改的。但我正在尝试将版本号设置回 1.4.1,以便更新再次发挥作用。当外部公司重新启动服务器时,我会回复你的答案,所以我看到了变化。 在更新屏幕中,如果有帮助,您应该会看到执行了哪些任务。此外,根据您的 Magnolia 版本,如果您的版本高于 5.4.5,您应该会从 Resource Files 应用程序中看到这些类。必须做的一件事是您应该调整 'magnolia.resources.classpath.observation.pattern' 属性以接受 .class 文件,例如".*\\.(ftl|yaml|class)$" 感谢信息,从 1.4.1 到 1.4.2 的更新有效,但它对错误执行的代码没有任何影响。当我使用 magnolia 5.4.6 时,我用给定的模式尝试了 magnolia.resources.classpath.observation.pattern 的灵魂,但是在 magnolia 中我没有在“web-dev > ressources”下看到任何类文件,你确定正确的模式吗?很高兴在 magnolia 中看到使用过的类文件。提前致谢。 您是否从文件系统加载了这些文件?我以为它们来自 Classpath 我刚刚仔细检查了由于 info.magnolia.resourceloader.classpath.DefaultClasspathServiceConfigurations 的一些额外检查,无法获取 Resources 应用程序列出的类文件。很抱歉造成混乱。

以上是关于Magnolia 模块不包括代码更改的主要内容,如果未能解决你的问题,请参考以下文章

Magnolia CMS 中的 RichText 正在更改 HTML 文本

Magnolia 邮件模块不起作用

从另一个 Magnolia 模块访问 Spring 服务(不使用 Spring Blossom)

在我的 Spring MVC Magnolia 模块中获取 JCR Session 对象的更好方法是 LifeTimeJCRSessionUtil

Magnolia 5.7.9 模块配置

Magnolia 5.4.7 更改列排序