Different versions of the same dependency in Maven

為{幸葍}努か 提交于 2019-11-27 14:03:48

问题


I have a maven project that depends on both Woodstox and XStream. Unfortunately XStream also depends on Woodstox, but a version slightly older than what I need. In the meantime though, the artifact names of the Woodstox libs changed, so maven won't consider them multiple versions of the same artifact. But the package and class names are the same, which means there is a conflict at runtime.

Now, I could obviously hack the old woodstox jar out of the build (a war file in our case) somehow but what is the proper way of solving this type of problem?


回答1:


You could try excluding woodstox dependency in your dependency declaration for xstream.

  <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>



回答2:


If you are lucky, the solution suggested by Raghuram will work.

If not, you will have to create a modified version of the XStream jar, probably using the Maven Shade Plugin, merging both XStream woodstox into one Jar, renaming all woodstox packages.



来源:https://stackoverflow.com/questions/4827335/different-versions-of-the-same-dependency-in-maven

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!