2009-05-29 21 views
3

私のMavenのpom.xmlファイルにhibernate-c3p0を含めると、org.slf4j.impl.StaticLoggerBinderが見つからないため、ランタイムNoClassDefFoundErrorが得られます。 Mavenがこの依存関係を解決するのは私の印象でした。もしc3p0がslf4jを必要とするならば、slf4jがダウンロードされ、含まれます。Mavenはslf4jへのhibernate-c3p0の依存関係を解決しません

pom.xmlファイルがあります:

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

答えて

5

それはSLF4Jは、オプションの依存関係であることが考えられます。依存プラグインを使用すると、推移的な依存関係を非常に簡単に確認できます。

mvn dependency:tree 

は、何に依存するかを正確に示すツリーのリストを表示します。 slf4jがdepでなければ、それを明示的に追加することができます。 org.slf4j.impl.StaticLoggerBinderため

HTH

4

NoClassDefFoundErrorには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

関連する問題