拥有
slf4j-api并选择对应版本的SLF4J绑定,并将它们作为依赖项添加到您自己的POM中。您的某些依赖项很可能会暂时解决导致问题的SLF4J绑定的不兼容版本。查找哪个库引入了不需要的SLF4J绑定(您可以通过轻松地实现此绑定
mvndependency:tree),并在对该库的依赖项中添加相应的排除。
(通常不应在库中声明SLF4J绑定。实际上,发现实际原因后,您可能想向库开发人员报告这是错误的)
更新资料
这正是我在说的:
从依赖树中:
[INFO] +- org.geogit:geogit-core:jar:0.8-SNAPSHOT:compile[INFO] | +- org.slf4j:slf4j-api:jar:1.7.5:compile.....[INFO] +- org.apache.hbase:hbase-client:jar:0.98.0-hadoop2:compile .....[INFO] | +- org.apache.zookeeper:zookeeper:jar:3.4.5:compile[INFO] | | - org.slf4j:slf4j-log4j12:jar:1.6.1:compile
您
slf4j-log4j12从获得绑定
hbase-client,该版本为1.6.1。
但是,
slf4j-api您在项目中拥有的版本是1.7.5。它们不兼容。
正确的解决方法是:
slf4j-log4j12
从您的依赖中排除hbase-client
- 在您自己的项目中声明兼容的SLF4J绑定
您还应该将此错误报告给zookeeper / hbase开发人员,因为对于库而言,将SLF4J绑定作为编译范围依赖项是不合适的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)