Различные версии одной и той же зависимости в Maven - PullRequest
14 голосов
/ 28 января 2011

У меня есть проект maven, который зависит как от Woodstox, так и от XStream.К сожалению, XStream также зависит от Woodstox, но версия немного старше, чем мне нужно.Тем временем имена артефактов библиотек Woodstox изменились, поэтому maven не будет рассматривать их как несколько версий одного и того же артефакта.Но имена пакетов и классов одинаковы, что означает конфликт во время выполнения.

Теперь я, очевидно, мог бы как-то взломать старый jar woodstox из сборки (файл war в нашем случае)но как правильно решить проблему такого типа?

Ответы [ 2 ]

18 голосов
/ 28 января 2011

Вы можете попробовать excluding зависимость woodstox в объявлении dependency для 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>
5 голосов
/ 28 января 2011

Если вам повезет, решение, предложенное Рагурамом, сработает.

Если нет, вам придется создать модифицированную версию баночки XStream, вероятно, используя Maven Shade Plugin объединяя оба XStream woodstox в один Jar, переименовывая все пакеты woodstox .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...