我有一个项目结构为Java的:异常在线程 “主要” java.lang.NoClassDefFoundError:组织/ SLF4J /的LoggerFactory
myproject/
moduleA/
moduleB/
moduleC/
myproject
具有pom.xml
作为
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.3</version>
<scope>provided</scope>
</dependency>
现在moduleC
需求moduleB
代码,所以它引用依赖关系为
<dependency>
<groupId>com.org.myproject</groupId>
<artifactId>moduleB</artifactId>
<version>${project.version}</version>
</dependency>
但是,当我在moduleC
执行的类,它抱怨
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
......
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
这发生在我的moduleC
类执行moduleB
代码。
这是什么我做错了?我怎样才能解决这个问题?
工作你是如何包装的二进制文件和你是如何执行的呢?给定的'pom.xml'只描述了编译时的依赖关系 - 而不是如何打包二进制文件。该错误消息通常是类路径问题。因此,JVM无法在类路径中找到LoggerFactory类的logback实现。 –