121
  • Eclipse IDEについて(IndigoJunoKepler(32ビットおよび64ビットバージョン))
  • プラットフォームWindowsUbuntuMac
  • m2eバージョン1.1.0.20120530-0009、1.2.0.20120903-1050、1.3.0.20130129-0926、1.4.0.20130601-0317 _ _ _ _ _

一般的な情報

上記のエラーは、m2eをバージョン1.1に更新した後に発生しました。m2e1.1を削除してm2e1.0にロールバックすることにより、すべてが正常に機能しました。WindowsとUbuntuで問題を繰り返してみましたが、まったく同じエラーが発生しました。slf4j-apiとlogbackの多数の構成がテストされましたが、どれも機能していないようです。

このエラーは、 slf4jの依存関係を宣言していなくても、すべてのMavenプロジェクトに表示されます。

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

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

    結果に

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

環境と構成のテスト

MacではEclipseIndigoとEclipseJuno(32ビットと64ビットの両方)、Ubuntuでは32ビット、Windowsでは64ビットと32ビットでテストされています。Juno ClassicJuno ModelingツールKepler StandardKepler Modeling Toolsの新規インストールをテストしたところ、同じエラーが発生しました。

エラーは、cleaninstalltestdeploygenerate-sourcesvalidatecompilepackageintegration-testverify、および目標と残りの目標の組み合わせで表示されます。パラメータ-eおよび-Xでも表示されます。m2eリポジトリを削除して最初からダウンロードしようとしましたが、成功しませんでした。上記のすべてのシステムで3つの異なるマシンと仮想ボックスでテストされましたが、同じエラーが発生しました。

slf4j-apilogback-coreの依存関係を解決するすべての異なるログバック構成(1.0.4から1.0.13)を試しましたが、すべて同じエラーが発生します。

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

すべての異なる(1.6.1から1.7.5まで)slf4j-単純な構成を試しました。

<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 -nop1.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のインストール-Eclipse用のMaven統合

      また

    • 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を選択]->[完了]を選択します

      また

    • 「ファイル」->「新規」->「その他」->「Mavenプロジェクト」->「次へ」をクリック->「単純なプロジェクトの作成」を選択(アーキタイプの選択をスキップ)->「アーティファクト情報の完了」->「終了」

  • プロジェクトを右クリック->実行->クリーンインストール(または上記の他の目標)

コンソールの最初の行は

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.

PS既存のプロジェクトでは、m2eバージョンを1.1.0.20120530-0009、1.2.0.20120903-1050、1.3.0.20130129-0926、1.4.0.20130601-0317に更新した後、同じエラー発生ます


更新

編集

m2eサポートサイト:

  • 上記の質問はm2eサポートサイトのバグとして投稿されたもので、IgorFedorenkoからの回答は次のとおりです。

    このメッセージを抑制するための当面の計画はありません。

    上記のバグを表示するには、m2e公式サポートサイトを参照してください


編集2

  • 上記のエラー表示は、 m2eバージョン1.2.0.20120903-1050にも存在します。


編集3

  • 上記のエラー表示は、 m2eバージョン1.3.0.20130129-0926にも存在します


編集4

  • 上記のエラー表示は、 m2eバージョン1.4.0.20130601-0317にも存在します


編集5

                              ***Reported FIXED***
4

12 に答える 12

75

このエラーも確認できます。

回避策:埋め込まれたMavenの代わりに、m2eclipse内で外部のMavenを使用することです。

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

1 ローカルマシンにMavenをインストールします(テストマシンはUbuntu 10.10でした)

mvn --version

Apache Maven 2.2.1(rdebian-4)Javaバージョン:1.6.0_20 Javaホーム:/ usr / lib / jvm / java-6-openjdk / jreデフォルトロケール:de_DE、プラットフォームエンコーディング:UTF-8 OS名: "linux"バージョン: "2.6.35-32-generic"アーチ: "amd64"ファミリー: "unix"

2Mavenを外部 で実行するコンソールから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] ------------------------------------------------------------------------
    [...]

3 m2eclipse内:埋め込みMavenからローカルMavenに切り替えます

  • ローカルのMavenホームインストールディレクトリがどこにあるかを調べます(mvn --version、またはgoogle for your MAVEN_HOME、これは私にとっては助け/usr/share/maven2になりました)
  • eclipseの[メニュー]->[ウィンドウ]->[設定]->[Maven]->[インストール]->にその文字列を入力します。次に、新しい外部Mavenに切り替える必要があります。
  • 次に、プロジェクトを「Mavenテスト」などとして実行します。

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

于 2012-09-11T15:41:02.563 に答える
26

これを解決するためのドキュメントがSLf4Jサイトにあります。私はそれに続き、すでに持っていたslf4j-api-1.6.1.jarと一緒にslf4j-simple-1.6.1.jarをアプリケーションに追加しました。これで問題は解決しました。

slf4j

于 2014-05-23T10:06:03.557 に答える
19

Gradleを使用している場合は、次を追加します。

dependencies { 
... 
compile "org.slf4j:slf4j-simple:1.7.9" 
... 
}
于 2016-12-23T04:56:51.480 に答える
5

Gradleでも同じ結果で同様のエラーが発生し、次のようにして解決できました。

//compile 'org.slf4j:slf4j-api:1.7.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'

コメントアウトされた行は、エラー出力の原因となった行です。これをMavenに転送できると思います。

于 2014-10-29T15:11:11.297 に答える
4

このコードをpom.xmlファイルに貼り付けます。わたしにはできる。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>
于 2017-09-27T10:00:51.883 に答える
3

Maven依存関係ファイルでバージョンを指定していないため、最新のjarが選択されていない可能性があります。また、アーティファクトID
を持つ別の依存関係が必要です。これをpomファイルに含めますslf4j-log4j12

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

それでもエラーが解決しない場合はお知らせくださいこのリンク
もご覧になることをお勧めします

于 2012-08-14T11:07:09.037 に答える
1

問題が表面化したので見過ごしていました。これは、同じ問題でここに来る他の人にとって良い読み物になると信じています:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064

于 2014-07-30T05:33:43.080 に答える
0

SpringBoot-EclipseLunaで実行されているGradleアプリケーションでも同様の問題が発生しました。プロジェクトの.classpathに手動でエントリを追加することで解決できます

<classpathentry sourcepath="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/3150039466ad03e6ef1c7ec1c2cbb0d96710cf64/slf4j-simple-1.7.7-sources.jar" kind="lib" path="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/8095d0b9f7e0a9cd79a663c740e0f8fb31d0e2c8/slf4j-simple-1.7.7.jar"/>

アイデアは、この解決策に従うことです。ただし、実装方法はケースバイケースによって異なります。修正の1つの方法は、上記で使用した方法です。

お役に立てれば。

于 2015-08-05T10:44:08.190 に答える
0

Javaを使用してKafkaプロデューサープログラムを作成する際にも同じ問題が発生しました。このエラーは、slf4jライブラリが間違っていることが原因で発生します。以下のslf4jを使用してください-問題を修正する単純なMaven依存関係。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>
于 2019-12-16T05:39:15.380 に答える
0

私も同じ問題を抱えていました。私はこの方法でそれを解決しました。この依存関係をmaven"pom.xml"に追加し、mavenをリロードします。コードを実行してみてください。
`org.slf4jslf4j-nop2.0.0-alpha5テスト

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.0-alpha5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.0-alpha5</version>
    </dependency>`
于 2021-12-03T08:29:00.393 に答える
0
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>2.0.0-alpha5</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.0-alpha5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.0-alpha5</version>
    </dependency>
于 2021-12-03T08:32:04.367 に答える
-1

これはエラーメッセージではなく、警告です。それは彼らのウェブサイトで非常に明確に説明されています:

この警告、つまりエラーではないメッセージは、クラスパスにSLF4Jプロバイダーが見つからなかった場合に報告されます。slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar、またはlogback-classic.jarの1つ(および1つだけ)をクラスパスに配置すると、問題が解決するはずです。これらのプロバイダーは、slf4j-api1.8以降をターゲットにする必要があることに注意してください。

プロバイダーがない場合、SLF4Jはデフォルトで無操作(NOP)ロガープロバイダーになります。

https://www.slf4j.org/codes.html#StaticLoggerBinder

于 2018-05-16T19:53:29.847 に答える