我有一个依赖于 Woodstox 和 XStream 的 Maven 项目。不幸的是,XStream 也依赖于 Woodstox,但是它所需要的版本比我需要的版本要稍微旧一些。与此同时,Woodstox 库的 artifact 名称已经更改,因此Maven不会将它们视为同一artifact的多个版本。但是包和类名相同,这意味着运行时存在冲突。
现在,我可以显然地从构建中删除旧的 Woodstox jar (在我们的情况下是war
文件),但是解决这种问题的正确方法是什么?
我有一个依赖于 Woodstox 和 XStream 的 Maven 项目。不幸的是,XStream 也依赖于 Woodstox,但是它所需要的版本比我需要的版本要稍微旧一些。与此同时,Woodstox 库的 artifact 名称已经更改,因此Maven不会将它们视为同一artifact的多个版本。但是包和类名相同,这意味着运行时存在冲突。
现在,我可以显然地从构建中删除旧的 Woodstox jar (在我们的情况下是war
文件),但是解决这种问题的正确方法是什么?
排除
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>