从不同的第三个库中排除slf4j

时间:2014-11-30 10:02:32

标签: java logging solr intellij-idea slf4j

在我的项目中,我使用Solr 4.10(作为单独的工件),Tika 1.6和Tomcat 7。 Solr需要将日志库放在tomcat7_dir / lib中。 Tika也有slf4j库。所以在项目启动时,我得到了多个绑定警告:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/.../apache-tomcat-7.0.39/lib/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/.../out/artifacts/war/WEB-INF/lib/slf4j-log4j12-1.7.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/.../out/artifacts/war/WEB-INF/lib/tika-app-1.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]

如何在Intellij Idea中删除不必要的库?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您应该将slf4j.jar保留在tomcat / lib中,并删除所有其他slf4j jar。 在eclipse中,可以将Web项目配置为在编译时使用一组jar(因此您的项目编译)但不包装在war中。 IntelliJ应该能够做同样的事情。

答案 1 :(得分:0)

解决了这个小问题:

  1. 从tika的jar中删除 org / log4j (刚刚由WinRar打开并删除了此文件夹)。
  2. tomcat / lib 中输入 slf4j-log4j12-1.7.7.jar slf4j-api-1.7.6.jar 和< EM>的log4j-1.2.17.jar
  3. 项目设置( Shift + Ctrl + Alt + S ),模块,依赖关系选项卡 - &gt;添加jar或目录,从 tomcat \ lib 中选择 slf4j-api-1.7.6.jar 并设置提供范围。
  4. 另外请确保您的工件中没有此库