【发布时间】:2023-03-20 14:13:02
【问题描述】:
我正在创建一个访问现有业务代码的网络服务。 处理日志记录所需的 jar 是 org.ops4j.pax.logging。 我已将其包含在 pom 中
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-api</artifactId>
<version>1.6.0</version>
</dependency>
此 jar 允许访问在整个业务层中使用的特定 log4j 方法
LOGGER.debug(object, object);
其他必需的 jar 之一是第三方 jar。 这个 jar 包含不同版本的 log4j,它没有实现 debug(object, object) 方法。 当我将这个jar添加到pom中时,JVM首先在这个第三方jar中找到log4j类,代码就掉了。
我曾尝试排除第三方jar中的log4j,但无济于事。
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
有什么想法吗?
【问题讨论】:
-
你确定这是唯一会引入不需要的 log4j 的依赖项吗?您可能还需要将其从其他依赖项中排除。
-
谢谢。通过忽略第三方 jar 并从 maven 拉入 jar 中包含的依赖项解决了问题。忽略 log4j 依赖。干杯。