【问题标题】:Different versions lib in Java EE applicationJava EE 应用程序中的不同版本库
【发布时间】:2023-03-30 13:51:01
【问题描述】:

我们有一个 Java EE 应用程序,它使用 log4j 版本“x”进行日志记录。 在项目增强期间,我想添加另一个使用 log4j 版本“y”的第三方库。我认为我们需要将“x”和“y”版本的库都添加到类路径中。

谁能解释一下如何处理这种情况?

【问题讨论】:

  • 只使用最新版本在逻辑上不合理吗?
  • 不确定,所有第三方库都应该向后兼容吗?

标签: jakarta-ee log4j java


【解决方案1】:

您不应该将两者都放在同一个类加载器中。您必须找到适用于您的两个库的版本。

如果你使用maven,你可以这样排除传递依赖:

<exclusions>
    <exclusion>
        <groupId>...</groupId>
        <artifactId>...</artifactId>
    </exclusion>
</exclusions>

【讨论】:

    【解决方案2】:

    在您的应用程序中使用同一个 jar 的 2 个不同版本是个坏主意。就 log4j 而言,所有 1.x 版本都向后兼容,只有 2.x(仍处于 beta 阶段)不向后兼容。因此,只要 jar 'x' 和 jar 'y' 都属于 1.x 系列,您就可以只使用一个最新版本 ( 1.2.17 ) 而不会出现任何问题。

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多