我用Lombok。不久前,当构建一个项目时,编译器开始发出以下消息:
找到slf4j-api依赖项,但没有找到提供程序。你是想添加slf4j-简单吗?见https://www.slf4j.org/codes.html#noProviders。
如果你按照这个链接,有一个相当模糊的评论:
当在类路径上找不到SLF4J提供程序时,报告此警告(即不是错误)消息。将slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar或logback-classic.jar放置在类路径上应该可以解决这个问题。请注意,这些提供程序必须针对slf4jAPI 1.8或更高版本。 如果没有提供程序,SLF4J将默认为无操作记录器提供程序。 请注意slf4j-api版本1.8.x,并在以后使用ServiceLoader机制。早期版本依赖于静态绑定机制,而slf4j-api不再遵守这种机制。请阅读FAQ条目在SLF4J版本1.8.0中发生了什么变化?更重要的细节。 如果您负责打包应用程序,而不关心日志记录,那么将slf4j-nop.jar放在应用程序的类路径上将消除此警告消息。注意,嵌入组件(如库或框架)不应该声明依赖于任何SLF4J提供程序,而应该只依赖slf4j-api。当库声明编译时依赖于SLF4J提供程序时,它会将该提供程序强加给最终用户,从而否定SLF4J的目的。
我不知道如何正确地做这件事。如果你有经验,请告诉我怎么做。
发布于 2019-09-29 03:27:31
如图托利亚点所述:
SLF4J代表Java简单日志外观。它提供了所有日志记录框架的简单抽象。它允许用户使用任何日志记录框架,如Log4j、Logback、JUL (java.util.logging)等。
这意味着您必须在类路径上为SLF4J本身提供一个具体的java日志库(例如Maven):
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.0-alpha0</version>
</dependency>您还需要指定对首选日志库的依赖关系。例如:
对于标准jdk1.4日志记录:
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-jdk14 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>2.0.0-alpha0</version>
<scope>runtime</scope>
</dependency> 对于slf4j-简单的日志记录:
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.0-alpha0</version>
<scope>runtime</scope>
</dependency>对于log4j日志记录:
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>2.0.0-alpha0</version>
<scope>runtime</scope>
</dependency>发布于 2021-09-29 13:24:11
请参阅本页:http://www.slf4j.org/codes.html#noProviders
您可以添加以下任何一个依赖项:将slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar或logback-classic.jar放置在类路径上就可以解决这个问题。
我使用了来自https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j的“slf4j-简单”maven依赖项。
https://stackoverflow.com/questions/54652836
复制相似问题