Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将露天扩展封装为amp和jar有什么区别?_Java_Maven_Maven 3_Alfresco - Fatal编程技术网

Java 将露天扩展封装为amp和jar有什么区别?

Java 将露天扩展封装为amp和jar有什么区别?,java,maven,maven-3,alfresco,Java,Maven,Maven 3,Alfresco,我想了解将Alfresco扩展打包为jar而不是打包为AMP的后果。我是在建筑方面提出这个问题的 假设我有一个模块MyAlfresco,使用创建。我想用我的Foo扩展来扩展它。我的问题是:为什么我要打包为AMP 如果我将Foo打包为jar并将其标记为MyAlfresco的依赖项,Foo.jar将被放置在WEB-INF/lib中 如果我将Foo打包为AMP,结果将是相同的(使用覆盖),但是maven构建将花费更长的时间(使用覆盖会使maven-war-plugin相当慢) 那么,在这种情况下,有没

我想了解将Alfresco扩展打包为jar而不是打包为AMP的后果。我是在建筑方面提出这个问题的

假设我有一个模块MyAlfresco,使用创建。我想用我的Foo扩展来扩展它。我的问题是:为什么我要打包为AMP

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

如果我将Foo打包为AMP,结果将是相同的(使用覆盖),但是maven构建将花费更长的时间(使用覆盖会使maven-war-plugin相当慢)

那么,在这种情况下,有没有理由考虑包装FO作为AMP? As、JAR和AMP是两种不同的方法,把Maven放在一边。 简言之,这主要是一个分销问题,可能是一个标准化问题

罐子: jar包含java类,有时还包含静态资源。它们通过重载现有类添加到共享/露天。他们必须在WEB-IF/lib中投入爆炸式的战争。假设您使用Tomcat,并且您的应用程序永远不会被删除

这不是常见的情况,至少不是cumfortable产品

放大器 通用结构提供一些“标准”开发,并利用Spring/SpringSurf集成

此外,AMP和Alfresco工具提供了许多包含和使用扩展的机制。它使用module.properties来定义版本和依赖关系(就像maven一样)。你可以给你的生产运营商(或任何管理团队)一个放大器,他们只需把放大器放在AMP目录,启动apply_AMP.sh(或bat)和所有应该正确安装

如果你给了一个罐子,它们有很多种方式来包含它,有些确实不推荐。所以你必须写一篇关于如何做的文章

好的,马文呢? Maven被整合在一起,只有两年的时间。它仍然是一些旧的配置和许多发展的道路

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

当您将共享和露天混合使用时,当您将交付战争(而不仅仅是提供AMP)时,以及当您希望共同开发多个与AMP相关的AMP时,请使用一体式原型

结论 即使我不深入讨论细节,AMP也是交付Alfresco扩展的标准方式。它配备了良好的工具,并带来了一些标准


对“简单”项目使用amp扩展包。当您的事情更复杂时,请使用一体式(多模块)。

与AMP相比,JAR包装的优势:

  • 使用标准(非露天)工具集
  • 更快的构建
  • 容易摸索
AMP封装相对于JAR的优势:

  • 使用Alfresco首选和推荐的方法
  • 轻松地将扩展可能需要的所有内容打包到一个文件中,包括相关JAR,但不包括整个Alfresco或Share WARs。这使得部署变得很容易,并且很明显什么是扩展的一部分,什么是核心Alfresco或Share的一部分
  • 可以在部署时利用相关性检查(AMP可以具有最小/最大露天版本,并且可以指向它们所依赖的其他AMP)

正确的术语是AMP,它代表露天模块包装。感谢您的回答!尽管如此,当使用maven(和多模块原型)时,我仍然不明白将模块打包为jar或amp是否有任何区别。我知道AMP是标准,但我不明白,在与maven合作时,是什么让它成为标准。我不理解你对Spring集成的评论:我想JAR也可以。我也不打算处理爆炸战争:正如我在问题中提到的,maven将把我的jar打包成适当的war。作为一个快速的回答,您的客户(如果您有)或团队生产可能希望自己打包war,并集成除您之外的其他扩展。所以你不会发动战争,而是制造紧张局势。Alfresco的工具(MMT)利用它们的集成,处理兼容性、版本化等问题。此外,Alfresco最近宣布amp DO是官方方式(通过Maven SDK)。事实上,jar只是一个最终的结果,而Alfresco的进一步进化可能(相当肯定)在原型中不可用。