Maven依赖冲突 - 更高版本

3

我有一个项目,其中有一些依赖项相同但版本不同。例如:

  • commons-logging-1.0.4.jar
  • commons-logging-1.1.1.jar(由于与1.0.4冲突而被省略)

是否有一种配置可以强制Maven始终获取具有冲突的更高版本的依赖项?


1
只需直接在您的pom中添加所需的版本,而不是将其作为传递依赖项,但这可能会失败! - khmarbaise
2个回答

3
强制Maven始终获取更高版本的方法
您不想这样做。可能存在依赖于旧版本具有与新版本不同API的中间依赖项。
您希望解决源的依赖问题。找出需要旧依赖项以及原因。然后查看您可以采取什么措施来解决冲突。
如果API未更改,则可以显式声明依赖关系并排除旧的中间依赖项,例如在此处我们排除了xerces中的xml-apis:
<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
    <scope>compile</scope>
    <exclusions>
        <exclusion> 
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </exclusion>
    </exclusions> 
</dependency>

使用上述逻辑,您可以声明所需的库版本。但是,请注意不要因库版本之间的API更改而导致代码无法编译。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接