【问题标题】:Fail to import org.slf4j.Logger- how to add the jar to classpath?无法导入 org.slf4j.Logger-如何将 jar 添加到类路径?
【发布时间】:2015-11-20 04:09:03
【问题描述】:

我正在学习使用 Maven 和 Log4J。在 POM 文件中,我添加了以下依赖项:

  <dependencies>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version>1.7.12</version>
     </dependency>
     <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>1.2.17</version>
     </dependency>   
  </dependencies>

当我尝试在我的主类中导入 import org.slf4j.Logger 时,Eclipse 说“无法解析导入 org.slf4j”。我搜索了一段时间的解决方案,似乎我需要在这里http://www.slf4j.org/download.html下载分发文件并“将jar添加到类路径”?我很困惑:Maven不会自动下载吗?如何“将 jar 添加到类路径”?我在这里是一个真正的初学者。非常感谢您的帮助!

【问题讨论】:

  • 在你的项目文件夹上右击->构建路径->配置构建路径->在库选项卡下点击(添加外部jar)->应用
  • @hermit 这不是您在 mavenized 项目中添加依赖项的方式,当这些依赖项不在 pom 配置中时,任何手动库配置将在同步项目设置时再次删除。
  • 你运行了 mvn clean install 吗?,在这之后你发现什么 jars 被下载到本地 maven 存储库中,暂时忘记 eclipse。

标签: java eclipse maven log4j dependencies


【解决方案1】:

因为我遇到了非常相似的问题,所以我写下我的问题是:

我从 Internet 复制了一个错误的 Maven 依赖项(示例)。 它只是在测试范围内..哦,亲爱的..

<scope>test</scope>

因此,删除范围测试部分开始按预期工作。 :)

【讨论】:

  • 我敢打赌,你是按照 baeldung.com/logback 中的示例进行操作的,而我也遇到了同样的事情并花了很长时间才弄清楚。
  • 谢谢。我找到了你的答案,而且我实际上有范围:测试...哦,天哪!是我能想到的最少的。
  • &lt;scope&gt;test&lt;/scope&gt; 再次出现同样的问题,但它是在Maven Central 给出的。删除线后,它就像一个魅力!
【解决方案2】:

您说您是 Maven 新手,并在 POM 中添加了依赖项。 现在我假设,您假设,仅仅因为您在 pom.xml 中添加了一些东西,依赖的 jar 将可用于构建。

Maven 不是这样工作的。它指向一个公共存储库,您必须从该存储库下载依赖的 jars(当您执行 mvn install 时会发生这种情况)

在你 mvn install 工作正常之后,你可以使用这个 src 在你的 eclipse IDE 中设置,方法是使用 mvn eclipse:eclipse 或使用 eclipse maven 插件。

所以,添加依赖项后,从项目所在的位置运行以下命令

mvn clean install;

您的 jars 应该从 maven 下载到您的本地目录,例如:

C:\Users\user.m2\repository

【讨论】:

  • 正如他所写,他不使用cmd,而是使用eclipse。 IDE 应该把它捡起来,如果项目被 eclipse 视为 maven 项目,他永远都不应该做 mvn eclipse:eclipse。
【解决方案3】:

你还需要依赖slf4j-api

另外,如果您使用 eclipse,可能会出现这种情况 - 尝试更新项目。

【讨论】:

  • 您是对的,但是 slf4j-log4j12 依赖项应该已经过渡地添加了缺少的 api 依赖项。这没有发生的事实清楚地表明,pom 设置可能比这里显示的错误更多。
  • @szefuf 谢谢。我已经更新了项目。我添加了` org.slf4jslf4j-api1.7.12`,但它仍然不起作用..
  • 您是否尝试从终端构建您的项目?那你有错误吗?
  • @szefuf 该项目在 log4j 之前还可以。由于我无法导入 org.slf4j.Logger 并创建方法,因此我不确定如何从 cmd 测试它..
  • 我不是 log4j 专家,因为我不使用它,但我不确定你的 pom.xml 中是否应该依赖 log4j。仅尝试 slf4j-log4j12。如果我错了,我希望有人能纠正我。
猜你喜欢
  • 1970-01-01
  • 2014-07-15
  • 2016-11-04
  • 1970-01-01
  • 2015-03-02
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
相关资源
最近更新 更多