【发布时间】:2011-04-02 14:14:14
【问题描述】:
我有一个使用 hibernate-annotations 3.4.0.GA 的 maven 项目 A,它使用 slf4j-api 版本 1.5.5(通过 pom.xml 文件中的依赖关系树检查)。进一步的项目 A 将 slf4j-log4j12 版本 1.4.2 指定为依赖项。
我有另一个依赖于项目 A 的 maven 项目 B。在项目 B 中,我指定了以下依赖项:
slf4j-api version 1.6.1,
logback-core version 0.9.24
logback-classic version 0.9.24
从命令行使用 maven 构建良好。但是当我从 Eclipse 启动配置运行项目时,我得到:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/mm/.m2/repository/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/mm/.m2/repository/ch/qos/logback/logback-classic/0.9.24/logback-classic-0.9.24.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
SLF4J: Your binding is version 1.5.5 or earlier.
SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x
从这条消息中它表明我需要将项目 A 中的绑定升级到 1.6.x,但我不知道这是怎么可能的,因为它包含在休眠依赖项中。
是否可以在运行项目 B 时切换绑定(更新类路径信息),使其使用 1.6.1 版本而不是 hibernate 项目中的版本?
【问题讨论】:
标签: eclipse hibernate maven-2 slf4j