gpt4 book ai didi

deployment - 在 JBoss AS7 独立部署中加载 3rd 方 JAR 的最佳实践?

转载 作者:行者123 更新时间:2023-12-03 10:29:22 30 4
gpt4 key购买 nike

在 JBoss-as-7.0.x 独立部署中加载 3rd 方 JAR 的最佳实践是什么?

我试过了:

  • 将每个 JAR 部署为具有自己的 module.xml 描述符的独立模块;
  • 在 WAR 的 WEB-INF/lib 目录中部署 JAR;
  • 以及跨多个 WAR 共享的任何 JAR 的 foo.ear/lib 目录。

  • 上述方法 1. 的明显优势是在部署时减少了与方法 2. 和方法 3 相比的内存占用。然而,维护 JAR 所具有的每个依赖项似乎都非常困难,因为需要在 module.xml 中明确定义对于大量的 3rd 方库,这似乎不太容易维护。

    最佳答案

    对于部署私有(private)的较小依赖项,请将它们保留在 WEB-INF/lib 中在您的 .war ,这就是它的用途。如果您使用的是 Maven,那么对于 范围内的任何内容都应该是自动且透明的。

    对于将在多个应用程序之间共享的大而复杂的依赖项或依赖项,请使用选项 (4):

    将每个逻辑库(如“OpenJPA”或“Log4J”)部署为一个模块,包括其 api 和 impl jar 以及其他 AS7 模块尚未提供的任何依赖项 JAR。如果已经有一个模块,请添加对它的依赖,而不是向您的模块添加 JAR。如果几个不同的库共享一些公共(public)依赖项,请将它们拆分为模块并将它们作为模块依赖项添加到 module.xml .

    使用jboss-deployment-structure.xml让您的部署.war/.ear/如果没有自动检测和自动加载,则声明对模块的依赖项。

    我发现这是一种中到低麻烦的方法,效果很好。这比把所有东西都扔到 WEB-INF/lib 更麻烦。在部署内部,这是 Java EE 标准要做的事情。它加快了重新部署速度,并通过减少类/版本冲突节省了大量部署/测试时间。

    如果你愿意做一些工作,你可以使用 Maven 和 maven-dependency-plugin 来生成已经包含传递依赖的模块。您可以在 module I wrote for EclipseLink integration in AS 7 中看到一个示例。 .我尽可能自动创建 AS7 模块。

    关于deployment - 在 JBoss AS7 独立部署中加载 3rd 方 JAR 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8289813/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com