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

Pap*_*ter 3 java alfresco maven-3 maven

我想了解将Alfresco扩展包装为jar而不是将其打包为AMP的后果.我在使用maven建立alfesco.war的背景下问这个问题

假设我有一个模块MyAlfresco,使用All in on Archetype创建.我想用我的Foo扩展来扩展它.我的问题是:为什么我打包成AMP?

如果我将Foo打包为jar并将其标记为MyAlfresco的依赖项,则foo.jar将放在WEB-INF/lib中.

如果我将Foo打包为AMP,结果将是相同的(使用叠加),但maven构建将花费更长时间(使用叠加使得maven-war-plugin非常慢).

那么,在这种情况下是否有任何理由考虑将Foo打包为AMP?

Jea*_*evy 6

由于每个文档,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提供露天的扩展的标准方法.它配备了良好的工具,带来了一些标准.

使用amp扩展包装进行"简单"项目.当事情变得更复杂时,使用一体机(多模块).


Jef*_*tts 6

JAR封装优于AMP的优势:

  • 适用于标准(非Alfresco)工具集
  • 更快的构建
  • 容易grok

AMP封装优于JAR的优势:

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