使用Maven构建时slf4j版本冲突

我意识到我的一个项目使用slf4j 1.5.8,而Hibernate使用slf4j

1.6。在使用Maven进行构建时,它会下载两个jar,但是我猜想使用了1.5.8的类文件。因此,当我运行程序时,出现以下错误:

SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6]

pom.xml我把

<dependencyManagement>    

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.6.1</version>

</dependency>

</dependencyManagement>

1.5.8是依赖项的一部分,因此可以单独下载。

回答:

您发现自己时,有两个库(Hibernate和其他一些库)以两个不同的版本可传递地导入SLF4J。不幸的是,较旧的版本已被maven选中(在这种情况下,某些规则应由maven选择依赖项)。解决方案是exclusion在导入较旧版本的SLF4J的依赖项中添加(com.example:foo-

bar此处为示例):

<dependency>

<groupId>com.example</groupId>

<artifactId>foo-bar</artifactId>

<version>1.2.3</version>

<exclusions>

<exclusion>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

</exclusion>

</exclusions>

</dependency>

如果仍然遇到此问题,请发出:

$ mvn dependency:tree

寻找1.5.8版本,并将其从所有导入它的库中排除。

以上是 使用Maven构建时slf4j版本冲突 的全部内容, 来源链接: utcz.com/qa/424036.html

回到顶部