【问题标题】: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 ) 而不会出现任何问题。