包装Alfresco扩展作为放大器和jar有什么区别?

时间:2014-02-28 14:42:04

标签: java maven maven-3 alfresco

我想了解将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?

2 个答案:

答案 0 :(得分:6)

作为per doc,JAR和AMP是两种不同的方法,将Maven放在一边。 简而言之,这主要是分销问题,可能是标准化问题。

JAR:

jar包含java类,有时还包含静态资源。它们通过重载现有类添加到Share / Alfresco。他们不得不在WEB-IF / lib中进行爆炸式战争。假设你使用Tomcat,你的应用程序永远不会删除。

这不是常见的情况,至少不是一个令人满意的生产方式。

AMP

通用结构提供了一些“标准”开发,并利用Spring / Spring Surf集成。

此外,AMP和Alfresco工具提供了许多包含和使用扩展的机制。它使用module.properties来定义版本和依赖关系(就像maven一样)。您可以为生产操作员(或任何管理团队)提供AMP,他们只需将AMP放在放大器目录中,启动apply_amp.sh(或bat)并正确安装所有

如果你给一个罐子,它们有很多方法可以包含它,有些人真的不推荐。所以你必须写一个如何。

好的,还有Maven?

Maven被整合进来,只有两年。它仍然是一些旧的配置和许多发展方式。

如果您只想为社区或专业环境开发独立扩展程序,请考虑使用AMP扩展原型。

当您混合使用Share和Alfresco时,使用一体式原型,何时提供战争(不仅仅是给AMP),以及何时想要开发许多相关的放大器。

结论

即使我没有进一步了解详情,AMP IS 是提供Alfresco扩展的标准方式。它配备了良好的工具,带来了一些标准。

将amp扩展包装用于“简单”项目。当事情变得更复杂时,使用一体机(多模块)。

答案 1 :(得分:6)

JAR包装相对于AMP的优势:

  • 使用标准(非Alfresco)工具集
  • 更快的构建
  • 易于理解

AMP封装优于JAR的优势:

  • 使用Alfresco的首选和推荐方法
  • 轻松将您的扩展程序可能需要的所有内容打包到包含相关JAR的单个文件中,但不包括整个Alfresco或共享WAR。这样可以轻松部署并明确扩展的内容以及核心Alfresco或Share的一部分。
  • 可以在部署时利用依赖性检查(AMP可以具有最小/最大Alfresco版本,并且可以指向它们所依赖的其他AMP)。