关于eclipse和maven以及eclipse自动构建的奇怪之处

时间:2013-04-27 19:57:25

标签: eclipse spring maven spring-tool-suite

我使用STS,这是一个弹簧网络项目。

当我手动运行maven build时,显示:

SLF4J:无法加载“org.slf4j.impl.StaticLoggerBinder”类。

但是这个项目仍然可以自动构建并部署到tomcat

所以当我保存文件并使用自动构建时,eclipse是否使用maven来构建我的项目

3 个答案:

答案 0 :(得分:1)

首先。关于依赖性。

如果您忘记添加所需的依赖性,我将覆盖此方面。

要添加SLF4J,您必须在pom.xml中添加 ONE 且仅 ONE 这些依赖项。这取决于您选择使用的实施方式。您在pom.xml中添加的每个依赖项都会自动添加到类路径中。如果下面的依赖项之一由另一个依赖项提供,那么您可以省略它。不要忘记,即使依赖项是由另一个依赖项提供的,您也必须只包含一个。请注意,我已从依赖项中省略了该版本。使用最新的。

<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version></version>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-log4j12</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-jdk14</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

关于恼人的错误

如果只有上述依赖项中的一个后仍然得到SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。然后你面临来自m2e的错误。

当使用捆绑的maven版本(m2e)时,Eclipse Juno和Indigo不会抑制消息SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。此行为存在于m2e版本1.1.0.20120530-0009及之后。

虽然这表示为错误,但您的日志会正常保存。在修复此错误之前,突出显示的错误仍然存​​在。有关详情,请参阅m2e support site

当前可用的解决方案是使用外部maven版本而不是捆绑版本的Eclipse。您可以在下面的问题中找到有关此错误的此解决方案和更多详细信息,我认为这些错误描述了您所面临的相同问题。

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

答案 1 :(得分:0)

你需要确保至少slf4j的绑定实现在你的类路径中,即:

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

答案 2 :(得分:0)

您需要将slf4j的实现依赖项添加到pom.xml中,例如slf4j-nop。

相关问题