我想了解将Alfresco扩展包装为jar而不是将其打包为AMP的后果。我在构建alfesco.war using maven
的背景下问这个问题假设我有一个模块MyAlfresco,使用All in on Archetype创建。我想用我的Foo扩展来扩展它。我的问题是:为什么我打包成AMP?
如果我将Foo打包为jar并将其标记为MyAlfresco的依赖关系,则foo.jar将放在WEB-INF / lib中。
如果我将Foo打包为AMP,结果将是相同的(使用叠加),但是maven build需要更长时间(使用叠加使得 maven-war-plugin 非常慢)。
那么,在这种情况下有没有理由考虑将Foo打包为AMP?
答案 0 :(得分:6)
作为per doc,JAR和AMP是两种不同的方法,将Maven放在一边。 简而言之,这主要是分销问题,可能是标准化问题。
jar包含java类,有时还包含静态资源。它们通过重载现有类添加到Share / Alfresco。他们不得不在WEB-IF / lib中进行爆炸式战争。假设你使用Tomcat,你的应用程序永远不会删除。
这不是常见的情况,至少不是一个令人满意的生产方式。
通用结构提供了一些“标准”开发,并利用Spring / Spring Surf集成。
此外,AMP和Alfresco工具提供了许多包含和使用扩展的机制。它使用module.properties来定义版本和依赖关系(就像maven一样)。您可以为生产操作员(或任何管理团队)提供AMP,他们只需将AMP放在放大器目录中,启动apply_amp.sh(或bat)并正确安装所有 。
如果你给一个罐子,它们有很多方法可以包含它,有些人真的不推荐。所以你必须写一个如何。
如果您只想为社区或专业环境开发独立扩展程序,请考虑使用AMP扩展原型。
当您混合使用Share和Alfresco时,使用一体式原型,何时提供战争(不仅仅是给AMP),以及何时想要开发许多相关的放大器。
即使我没有进一步了解详情,AMP IS 是提供Alfresco扩展的标准方式。它配备了良好的工具,带来了一些标准。
将amp扩展包装用于“简单”项目。当事情变得更复杂时,使用一体机(多模块)。
答案 1 :(得分:6)
JAR包装相对于AMP的优势:
AMP封装优于JAR的优势: