我想了解将 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 构建将花费更长的时间(使用覆盖会使 maven-war-plugin 非常慢)。
那么,在这种情况下,是否有任何理由考虑将 Foo 打包为 AMP?
最佳答案
作为per doc ,JAR和AMP是两种不同的方式,暂且不说Maven。 简而言之,这主要是一个分布问题,也可能是一个标准化问题。
jar :
jar 包含 java 类,有时还包含静态资源。它们通过重载现有类添加到 Share/Alfresco。必须将它们置于 WEB-IF/lib 中的爆炸式 war 中。假设您使用 Tomcat 并且您的应用程序永远不会被删除。
这不是常见的情况,至少不是一个舒适的生产情况。
AMP
通用结构提供一些“标准”开发,并利用 Spring/Spring Surf 集成。
此外,AMP 和 Alfresco 工具提供了许多机制来包含和使用扩展。它使用 module.properties 来定义版本和依赖项(就像 maven 的一种方式)。您可以将 AMP 提供给您的生产运算符(operator)(或任何管理团队),他们只需将 AMP 放入 amp 目录,启动 apply_amp.sh(或 bat),所有应该都已正确安装。
如果你给一个jar,他们有很多方法来包含它,有些真的不推荐。所以你必须写一个操作方法。
好的,还有 Maven?
Maven被集成进来,只有两年时间。它仍然保留了一些旧的配置和许多开发方式。
如果您只想为社区或专业环境开发独立的扩展程序,请考虑使用 AMP 扩展程序原型(prototype)。
当您将 Share 和 Alfresco 混合使用时,当您要进行 war (而不仅仅是提供 AMP)时,以及当您想一起开发许多相关的放大器时,请使用一体化原型(prototype)。
结论
即使我不深入细节,AMP 是 交付 Alfresco 扩展的标准方式。它配备了良好的工具并带来了一些标准。
为“简单”项目使用 amp 扩展包。当您的事情更复杂时,请使用一体机(多模块)。
关于java - 将 Alfresco 扩展打包为 amp 和 jar 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22098191/