我的classpath中有两个jar文件,它们与slf4j有依赖关系。这会在我的Java程序中引发警告消息:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/lib/myprogram.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
有没有办法通过仅更改gradle文件来删除此警告消息,而不从类路径中删除任何上述jar文件?
由于
答案 0 :(得分:2)
有没有办法通过仅更改gradle文件来删除此警告消息,而不从类路径中删除任何上述jar文件?
没有
删除该警告的唯一方法是只为SLF4J提供一个绑定。 And you really should do so:
即使存在多个绑定,SLF4J也会选择一个日志框架/实现并与之绑定。 SLF4J选择绑定的方式由JVM决定,出于所有实际目的,应视为随机。
由于您在自己的jar中提供了绑定,因此将自己限制为单个绑定的最简单方法是排除slf4j-log4j12-1.7.6.jar。