问题描述
我知道我可以排除在maven中所做的绑定之一,因此springboot.jar仅包含logback和logback-slf绑定,但是在Spring-boot类路径上引用的这个外部jar在以下位置引入了slf4j-log4j绑定运行时,并感到困惑。
java -Dprofile=dev -Dloader.path=springboot.jar,/usr/local/hadoop/lib,/usr/local/hbase/lib -jar springboot.jar
SLF4J: Found binding in [jar:file:/runtime/external/classpath/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/build/jar/path/springboot.jar!/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
当绑定冲突与外部依赖关系冲突时,我该如何解决? 谢谢
1楼
您必须以某种方式将这些jar从类路径中排除。 因此,您一般不应该添加hbase lib目录,而应枚举所有jarfiles。
如果您使用bash启动应用程序,则可以利用其模式匹配: /usr/local/hbase/lib/!(slf4j-log4j12-*)
PS这不是一个弹簧启动的问题...。