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 模块访问 Spring 服务(不使用 Spring Blossom)
在我的 Spring MVC Magnolia 模块中获取 JCR Session 对象的更好方法是 LifeTimeJCRSessionUtil