2009-05-29 13 views
3

Quand je hibernate-c3p0 inclus dans le fichier pom.xml de mon Maven, je reçois un moteur d'exécution NoClassDefFoundError car il ne peut pas trouver org.slf4j.impl.StaticLoggerBinder. J'avais l'impression que Maven résoudrait cette dépendance - donc si c3p0 requiert slf4j, alors slf4j serait téléchargé et inclus.Maven ne résout pas la dépendance de mise en veille prolongée sur-c3p0 slf4j

Mon fichier pom.xml a:

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

Répondre

5

Il se pourrait que slf4j est une dépendance optionnelle. Vous pouvez vérifier les dépendances transitif très facilement à l'aide du plug-in de dépendance

mvn dependency:tree 

vous montrera une liste d'arbres exactement ce qui dépend de quoi. Si slf4j n'est pas un dep, vous pouvez ajouter explicitement.

HTH

4

Le NoClassDefFoundError pour org.slf4j.impl.StaticLoggerBinder indique qu'aucun SLF4J contraignant n'a pu être trouvée. Par transitivité, hibernate-c3p0 dépend de slf4j-api. Cependant, slf4j-api ne peut pas fonctionner sans une liaison. Voir le manuel de l'utilisateur de SLF4J pour les détails: www.slf4j.org/manual.html

Vous avez juste besoin d'ajouter un de slf4j-simple, slf4j-log4j12, slf4j-jdk14, ou logback-classic comme une dépendance. La page de manuel de SLF4J mentionnée plus tôt devrait avoir les détails.

+1

ou le fameux slf4j-nop, c'est plutôt rapide :) – whiskeysierra