我知道我可以排除我在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]
当绑定冲突与外部依赖关系时,如何解决这个问题? 感谢
答案 0 :(得分:0)
您必须以某种方式从类路径中排除这些jar。所以你不应该添加hbase lib目录,而是枚举所有的jar文件。
如果您使用bash启动应用程序,可以利用其模式匹配:/usr/local/hbase/lib/!(slf4j-log4j12-*)
P.S。这不是一个引发问题的问题......