Maven无法解析hibernate-c3p0对slf4j的依赖

时间:2009-05-29 03:54:49

标签: java hibernate c3p0 slf4j

当我在我的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>

2 个答案:

答案 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手册页应该有详细信息。