【发布时间】:2019-02-12 14:54:20
【问题描述】:
我使用龙目岛。 前段时间在构建项目时,编译器开始发出以下消息:
找到 slf4j-api 依赖项,但未找到提供程序。你的意思是 添加 slf4j-simple?见https://www.slf4j.org/codes.html#noProviders .
如果你点击链接,会有一个相当模糊的评论:
这个警告,即不是错误,没有SLF4J时会报这个信息 可以在类路径上找到提供程序。放置一个(并且只有一个) slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或类路径上的 logback-classic.jar 应该可以解决问题。 请注意,这些提供程序必须针对 slf4j-api 1.8 或更高版本。
在没有提供者的情况下,SLF4J 将默认为无操作 (NOP) 记录器提供程序。
请注意 slf4j-api 版本 1.8.x 及更高版本使用 ServiceLoader 机制。早期版本依赖于静态绑定器 slf4j-api 不再支持的机制。请阅读常见问题解答 条目 SLF4J 版本 1.8.0 发生了什么变化?对于更重要的 详情。
如果您负责打包应用程序并且不在乎 关于日志记录,然后将 slf4j-nop.jar 放在你的类路径上 应用程序将摆脱此警告消息。注意嵌入 库或框架等组件不应声明 依赖于任何 SLF4J 提供程序,但仅依赖于 slf4j-api。当一个 library 声明了对 SLF4J 提供程序的编译时依赖,它 将该提供者强加给最终用户,从而否定了 SLF4J 的目的。
我不知道如何正确地做到这一点。如果你有经验,请告诉我怎么做。
【问题讨论】:
-
你在类路径上有
slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar之一吗?