Maven中相同依赖的不同版本

我有一个依赖于Woodstox和XStream的maven项目。 不幸的是,XStream还依赖于Woodstox,但版本略高于我的需要。 与此同时,Woodstox库的工件名称发生了变化,因此maven不会将它们视为同一工件的多个版本。 但是包和类名是相同的,这意味着在运行时存在冲突。

现在,我可以在某种程度上破坏构造中的旧woodstox jar(在我们的案例中是一个war文件)但是解决这类问题的正确方法是什么?

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

   xstream.group xstream abc   woodstox.group woodstox    

如果幸运的话,Raghuram建议的解决方案将有效。

如果没有,你将不得不创建一个XStream jar的修改版本,可能使用Maven Shade插件 ,将两个XStream woodstox合并到一个Jar中, 重命名所有woodstox包 。