当我在我的Maven的hibernate-c3p0
文件中包含pom.xml
时,我得到了一个运行时NoClassDefFoundError
,因为它找不到org.slf4j.impl.StaticLoggerBinder
。我的印象是Maven会解决这种依赖 - 所以如果c3p0需要slf4j,那么slf4j就会被下载并包含在内。
我的pom.xml
文件有:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>3.3.1.GA</version>
</dependency>
答案 0 :(得分:5)
可能是slf4j是一个可选的依赖项。您可以使用依赖插件
非常轻松地检查传递依赖项mvn dependency:tree
将向您显示一个树列表,具体取决于什么。如果slf4j不是dep,你可以明确地添加它。
HTH
答案 1 :(得分:4)
NoClassDefFoundError
的{{1}}表示找不到SLF4J绑定。通过传递性,hibernate-c3p0依赖于slf4j-api。但是,没有绑定,slf4j-api无法运行。有关详细信息,请参阅SLF4J用户手册:www.slf4j.org/manual.html
您只需添加一个slf4j-simple,slf4j-log4j12,slf4j-jdk14或logback-classic作为依赖项。前面提到的SLF4J手册页应该有详细信息。