2009-05-29 1 views
3

Когда я включаю hibernate-c3p0 в pom.xml файле моего Maven, я получаю выполнение NoClassDefFoundError, поскольку он не может найти org.slf4j.impl.StaticLoggerBinder. Мне показалось, что Maven разрешит эту зависимость, поэтому, если c3p0 требует slf4j, тогда slf4j будет загружен и включен.Maven не разрешает зависимость Hibernate-C3P0 на SLF4J

Мой pom.xml файл имеет:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-c3p0</artifactId> 
    <version>3.3.1.GA</version> 
</dependency> 

ответ

5

Это может быть, что SLF4J является необязательной зависимость. Вы можете проверить транзитивные зависимости очень легко с помощью плагина зависимостей

mvn dependency:tree 

покажет вам дерево список точно, что зависит от того, что. Если slf4j не является отпечатком, вы можете добавить его экспликацию.

НТН

4

The NoClassDefFoundError для org.slf4j.impl.StaticLoggerBinder указывает на то, что ни один SLF4J не связывание может быть найдено. По транзитивности hibernate-c3p0 зависит от slf4j-api. Однако slf4j-api не может функционировать без привязки. См. Руководство пользователя SLF4J: www.slf4j.org/manual.html

Вам просто нужно добавить один из slf4j-simple, slf4j-log4j12, slf4j-jdk14 или logback-classic как зависимость. На странице руководства SLF4J, упомянутой ранее, должна быть подробная информация.

+1

или знаменитый slf4j-nop, это довольно быстро :) – whiskeysierra