几次前,我使用了ALFERCO5.2社区版。当我需要开发某种定制时,我将Alfresco SDK与三种不同的Maven原型一起使用,它是:
通过使用这个SDK,我开发了放大器文件,它通过使用模块管理工具覆盖在alfresco.war或share.war上。
现在我正在使用ALFERCO4.2.2企业版,问题是这些年来的所有定制都是直接在爆炸性战争中的服务器上执行的。
这里描述了这种方法:包装方法
未打包文件或ZIP 许多开发环境使用构建过程来执行脚本,将未打包的修改文件从源代码管理转移到web应用程序的爆炸性WAR文件中。Ant、bash或一些脚本语言都可以很好地做到这一点. 移动未打包的文件具有快速易懂的优点.
并进一步:
部署位置 一种解决方案是使用永久爆炸的部署(而不是在
/webapps下部署Alfresco文件)。在webapp目录下创建一个名为alfresco的目录,并将alfresco.war的内容提取到其中。然后将文件复制到../webapps/alfresco/WEB-INF/并重新启动Tomcat ..。
因此,我不能使用AMP-自定义(否则所有以前的发展将被删除)。据我所知,我可以使用另一个JAR定制。
如同一文件所述:
JAR 在
v3.4中,共享web应用程序支持将其打包为JAR文件的重写。这允许相互隔离多个自定义,并且可以预测选择的顺序。静态文件,如JavaScript、CSS或图像文件,通常放在共享应用程序的web根目录中,也可以打包到这些JAR中. 虽然可以通过在tomcat/shared/lib中放置这些JAR文件来避免覆盖问题(至少在Tomcat中是这样).
但是,我也不能利用这种方法。例如,我需要重写FreeMarker模板:
/opt/tomcat7/webapps/share/WEB-INF/classes/alfresco/web-extension/site-webscripts/components/form/service-note/service-note-order-things.ftl我在IDE中创建了适当的目录结构,以某种方式更改了模板,并构建了Jar文件。然后将其放入tomcat7/shared/lib (我也将其放在tomcat7/webapps/share/WEB-INF/lib中,但也没有成功)并重新启动应用服务器。
重新启动后,我看不到我的更改-模板保持不变。此外,如果我尝试向同一个目录(.../service-note/...)添加另一个模板,则不会出现一个新模板。
在我的Tomcat安装中,正确地配置了共享类加载器。
我做错了什么?如何使用JAR覆盖静态资源?
我将非常感谢你提供这些信息。多亏了所有人。
发布于 2017-12-01 14:31:52
必须使用SurfBug调试工具来标识模板文件(Template Type属性)。
然后开发弹簧冲浪扩展模块-- http://docs.alfresco.com/5.0/concepts/dev-extensions-share-surf-extension-modules-introduction.html --并将其打包到Jar中。然后,我应该使用通过web脚本可以获得的模块部署:
http://host:port/share/service/modules/deploy
FTL可以按以下方式进行定制:
@region之前/之后;@region的内容替换为新的内容;@region。在文件系统中,我们将有相同的未经修改的模板,因为Spring写入内存中的模型,然后允许扩展在模型被刷新到输出流之前操作该模型。
另请参阅:
https://stackoverflow.com/questions/47589354
复制相似问题