我最近开始在AEM 6.1中使用Sightly,它允许Java文件与组件位于同一文件夹中并使用WCMUse类。但是,我注意到每当我执行Maven构建时,涉及对其中一个Java文件的更改,页面功能的操作就像Java类没有被更改一样,尽管crx中的Java文件确实包含了这些更改。作为一种解决方法,我已经能够修改crx中的Java文件,保存它,然后将其修改回来并再次保存以更新功能,但我在所有实例上都没有这个功能。
任何人都知道如何在构建期间或之后强制重新编译组件中的Sightly Java?
答案 0 :(得分:2)
要验证的一些事项:
1-在进行maven构建/部署时是否更改了软件版本?有时,如果你的zip或jar中没有-SNAPSHOT,那么当maven部署时,AEM不会更新代码。
2-在CRX / DE中有一个/ var / classes / sightly你可以删除已编译的类,我想即使在系统控制台中也有一个条目
希望得到这个帮助。
答案 1 :(得分:1)
Bambara实际上帮助我找到了我需要的答案。事实证明/ var / classes文件夹保存已编译的正常文件,但它在构建时自然不会重新编译。在构建时删除该文件夹,然后运行使用正确代码的页面强制重新编译并显示新功能。
答案 2 :(得分:0)
希望其他人能够回答为什么会发生这种情况以及如何避免这种情况。面对这种情况,我开始认为将Java代码放入组件文件夹并不是一个好主意。使用带有Services / Core捆绑的maven多模块项目,然后所有Java代码都可以去那里。从视图中调用它只需要使用完全限定的类名(包括包)。将Java放入服务包具有以下好处