2017-08-26 221 views
-1

我已经构建了一个使用Log4J的jar。现在我在另一个jar中引用此jar但在Eclipse中我收到错误Java Maven Jar依赖关系

无法解析类型org.apache.logging.log4j.Logger。它是间接需要的.class文件

引用如果我不得不在第二罐中的Log4J依赖所有工作正常,但不是我所期望的。我期望从第一个jar中获得依赖。

我在做什么错?

+1

分享您都第一和第二项目的pom.xml依赖 – nullpointer

+0

第一个JAR具有log4j的 \t org.apache.logging.log4j \t log4j的核心 \t 2.8.2 第二个罐子有第一个罐子 \t it.si斯内德 \t UTIL \t 系统 \t 0.0.1 \t C:\开发\ LIB \ UTIL-0.0.1.jar 我期待什么,就像它发生了的log4j在第一个jar中,是我把dep4放在log4j上,maven从log4j知道还有什么是必须的。 我不能用我的第一个罐子做。 –

回答

0

直接使用log4j的jar应该在它的POM中有依赖关系。

+0

*任何使用log4j的jar应该在它的POM中有一个依赖。这可能更明显,并且不会有任何重复,因为Maven足够聪明。另外,使用第一个jar的jar应该在它的POM中拥有这个第一个jar的依赖 - 只有这样,第一个jar的所有依赖才能在第二个jar中解析。 – Sam

+0

Maven支持传递依赖关系,因此只需要直接依赖它的jar的log4j依赖关系。 –

+0

您不必跟踪传递性依赖关系。你可以包含你需要的所有东西,Maven不会创建重复的东西,因为它实际上支持传递依赖。这就是我所说的 – Sam