Eclipse可以很好地运行我的代码(右键单击-> run),但是当我尝试在intellij中运行相同的确切项目和主要方法时,却出现此错误。有没有办法查看eclipse从哪里获取依赖项并复制添加到Intellij中的依赖项?
我尝试将API从提供的切换到运行时。...然后我遇到了另一个问题-无法找到正确的LoggerFactory类型。但是eclipse却发现依赖关系很好。
这些在我的pom层次结构中:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
Exception in thread "main" java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
at com.railroad.messaging.consoleapp.PumpEmpMessagetoQpid.<clinit>(PumpEmpMessagetoQpid.java:16)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:609)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:926)
at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
at java.lang.ClassLoader.loadClass(ClassLoader.java:854)
... 1 more
答案 0 :(得分:0)
检查您的父项目pom.xml。可能是您需要删除slf4j依赖关系块(在PARENT项目中)“提供”的作用域。
<dependency>
<groupId>org.slf4j</groupId
<artifactId>slf4j-api</artifactId>
<version>${slf4.version}</version>
<!-- DELETE THIS ROW: -->
<scope>provided</scope>
</dependency>