java - 将 Alfresco 扩展打包为 amp 和 jar 有什么区别?

标签 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 构建将花费更长的时间(使用覆盖会使 ma​​ven-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/

相关文章:

c# - Java中的贷款模式/自动资源管理

java - spring框架中根据实体对象调用不同的Service api

java - 如何将所有依赖项放在可运行 jar 的单独文件夹中?

java - 如何使用命令提示符动态地将 Cucumber 功能文件传递到 Maven 项目?

maven - 使用 maven 程序集插件解压 tar 时如何保留符号链接(symbolic link)

Java + readLine 和 BufferedReader

java - 为什么 LinkedBlockingQueue 内部不使用 LinkedList?

spring - 无法通过 Junit 加载 applicationContext 来测试类

java - 有没有办法从命令行配置 Maven POM 的版本?

eclipse - 使用tomcat7 maven插件的tomcat7部署不起作用