我有一个依赖于Woodstox和XStream的Maven项目。不幸的是,XStream还依赖于Woodstox,但是这个版本比我需要的版本稍旧。但是,与此同时,Woodstox库的工件名称已更改,因此maven不会将它们视为同一工件的多个版本。但是包名称和类名称相同,这意味着在运行时存在冲突。

现在,我显然可以以某种方式将旧的woodstox jar从构建中删除(在我们的情况下为war文件),但是解决此类问题的正确方法是什么?

最佳答案

您可以在xstream的excluding声明中尝试dependency woodstox依赖性。

  <dependency>
        <groupId>xstream.group</groupId>
        <artifactId>xstream</artifactId>
        <version>a.b.c</version>
        <exclusions>
            <exclusion>
                <groupId>woodstox.group</groupId>
                <artifactId>woodstox</artifactId>
            </exclusion>
        </exclusions>
  </dependency>

07-28 13:07