1. ホーム
  2. eclipse

[解決済み] SLF4J: クラス "org.slf4j.impl.StaticLoggerBinder" の読み込みに失敗しました。

2022-08-29 07:22:48

質問

  • について Eclipse IDE ( インディゴ , ジュノ そして ケプラー (32および64ビット版))
  • プラットフォーム : ウィンドウズ , Ubuntu , Mac
  • m2e バージョン : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,

    1.4.0.20130601-0317

一般的な情報

m2eをバージョン1.1にアップデートしたところ、上記のようなエラーが発生しました。 m2e 1.1 を削除し、m2e 1.0 にロールバックすることで、すべてが正常に動作しました。 私はWindowsとUbuntuでこの問題を繰り返そうとしましたが、それは私に全く同じエラーを与えました。slf4j-apiとlogbackの多数の構成がテストされましたが、どれも動作していないようです。

エラーは任意の maven プロジェクトで表示されます。 slf4jの依存関係を宣言していなくても .

  • 新しい Maven プロジェクト--> maven-archetype-quickstart

  • 新しいMavenプロジェクト--> アーキタイプを選択しないシンプルなプロジェクト

    への結果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".


テスト環境と設定

Mac では Eclipse Indigo と Eclipse Juno (32 ビットと 64 ビットの両方)、Ubuntu では 32 ビット、Windows では 64 ビットと 32 ビットでテストしています。の新規インストールをテストしました。 Juno Classic , Juno モデリングツール , ケプラー・スタンダード , ケプラーモデリングツール と入力すると、同じエラーが発生しました。

このエラーは クリーン , インストール , テスト , デプロイ , ソース生成 , バリデート , コンパイル , パッケージ , 統合テスト , ベリファイ と、残りのゴールとゴールクリーンの組み合わせで表示されます。また、パラメータ -e -X . m2e リポジトリを削除し、一からダウンロードする試みもありましたが、やはり成功しませんでした。これは、3つの異なるマシンと仮想ボックスで上記のすべてのシステムをテストしたが、同じエラーを生成したことを私に言及する必要があります。

すべての異なる ログバック を解決する設定 (1.0.4 から 1.0.13 まで) をすべて試しました。 slf4j-api ログバックコア のような依存関係がありますが、すべて同じエラーが発生します。

<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version></version>
</dependency>

1.6.1から1.7.5までのすべてのバージョンを試してみました。 slf4j-simple の構成で試してみました。

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

1.6.1から1.7.5までのすべてのバージョンを試してみました。 log4j-over-slf4j の設定を変更しました。

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>log4j-over-slf4j</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

1.6.1から1.7.5までのすべてのバージョンを試してみました。 slf4j-jdk14 の構成になります。

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-jdk14</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

1.6.1から1.7.5までのすべてのバージョンを試してみました。 slf4j-log4j12 の構成になります。

<dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-log4j12</artifactId>
     <version></version>
     <scope>compile</scope>
</dependency>

試してみた slf4j-nop 1.7.5 の設定を変更しました。

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-nop</artifactId>
  <version>1.7.5</version>
  <scope>compile</scope>
</dependency>

最後になりますが、エラーにもかかわらずログが保存され、印刷されます。


エラーの再現方法

  • Eclipse Juno、Indigo、または Kepler の 32 ビットまたは 64 ビットをダウンロードします (すべてのインストールで同じエラーが発生します)。 同じエラーが発生します)。

    • m2e - Maven Integration for Eclipseをインストールします。

      または

    • m2e のバージョンを次のように更新してください。 1.1.0.20120530-0009 または 1.2.0.20120903-1050 または 1.3.0.20130129-0926 または 1.4.0.20130601-0317 )


    • ファイル->新規->その他->Mavenプロジェクト->次をクリック->選択するを選択します。

      maven-archetype-quickstartをカタログから選択->Finish

      または

    • File->New->Other->Maven Project->Click Next->Create a simple project (skip archetype selection)-> Complete Artifact info-> Finishを選択します。

  • プロジェクト上で右クリックし、>実行する

コンソールの最初の行は次のようになります。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

追伸:m2e のバージョンを 1.1.0.20120530-0009 に更新すると、既存のプロジェクトでも同じエラーが発生します。 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317


更新情報

編集

m2eのサポートサイトです。

  • 上記の質問は m2e サポートサイトにバグとして投稿され、Igor Fedorenko からの回答は以下の通りでした。

    このメッセージを抑制する計画はすぐにはありません。

    上記のバグを見るには、以下のサイトを参照してください。 m2e公式サポートサイト


EDIT 2

  • 上記のエラー表示は 現在 にも m2e バージョン 1.2.0.20120903-1050


EDIT 3

  • 上記のエラー表示は 現在 にも m2e バージョン 1.3.0.20130129-0926


EDIT 4

  • 上記のエラー表示は 現在 にも m2e バージョン 1.4.0.20130601-0317


編集 5

                              ***Reported FIXED***

  • 上記のエラーが修正されたと報告されたのは m2e バージョン 1.5.0/Luna M3 ( 目標マイルストーン ). このバージョンはまだダウンロード可能ではありません。
  • ルナ M3 11月15日予定 .
  • 最新の開発版ビルドが利用可能 ここで
  • m2e のマイルストーンに関する詳細な情報については m2e メインリポジトリ .

どのように解決するのですか?

このエラーは私も確認できました。

回避策です。 外部Maven を使うことです。

それは の3つのステップで行われます。

1 ローカルマシンにmavenをインストールする (テストマシンはUbuntu 10.10です)

mvn --バージョン

Apache Maven 2.2.1 (rdebian-4) Java version: 1.6.0_20 Java home: /usr/lib/jvm/java-6-openjdk/jre デフォルトロケール: de_DE, プラットフォーム エンコーディング UTF-8 OS名: "linux" version: "2.6.35-32-generic" arch: ファミリー: "unix"。

2 外部でmavenを実行する リンク コンソールからmavenを実行する方法

<ブロッククオート
> cd path-to-pom.xml
> mvn test

    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Simple
    [INFO]    task-segment: [test]
    [INFO] ------------------------------------------------------------------------
    [...]
    [INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running net.tverrbjelke.experiment.MainAppTest
    Hello World
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [...]

m2eclipseの中に3つ。 からの切り替え 埋め込みMaven をローカルなmavenに

  • ローカルのmavenのホームインストールディレクトリがどこにあるか調べる ( mvn --version または、Googleであなたの MAVEN_HOME 私の場合は これは私を助けました というのは /usr/share/maven2 )
  • で、eclipse Menu->Window->Preferences->Maven->Installation-> に、この文字列を入力します。そうすると、新しい外部Mavenに切り替わるはずです。
  • を実行し、例えば "maven test" のようにプロジェクトを実行します。

エラーメッセージは消えているはずです。