конфликт зависимостей - PullRequest
2 голосов
/ 07 июля 2010

В моем проекте есть 2 библиотеки, каждая из которых зависит от класса XML-анализа java.xml.parsers.DocumentBuilderFactory.Каждая из этих библиотек ссылается на файл из разных jar (одна получает его из jar под названием xmlParserAPIs, а другая получает из xml-apis-1.0.b2.jar).К сожалению, в каждом из этих файлов есть разные версии класса, поэтому я вижу ошибки времени выполнения в зависимости от порядка их загрузки.Оба этих xml-файла являются транзитивными зависимостями сторонних библиотек.Есть ли хороший способ справиться с этим конфликтом?

edit: Я не уверен, что это изменит способ решения проблемы, но это происходит только в тестировании, потому что одна из зависимостей находится в области тестирования.

спасибо, Джефф

1 Ответ

3 голосов
/ 07 июля 2010

(...) К сожалению, в каждом из этих файлов есть разные версии класса, поэтому я вижу ошибки времени выполнения в зависимости от порядка их загрузки.

Теоретически, xml-apis.jar и xmlParserAPIs.jar (из xerces2-j) - это одинаковые JAR , но с разными именами, xmlParserAPIs.jar не рекомендуется в течение многих лет (см. это сообщение и этот ).

Если ваши зависимости зависят от разных и несовместимых версий xml-apis.jar, я бы сказал, что эти зависимости взаимоисключающие, другими словами несовместимые, по крайней мере, для версий, которые выс помощью.Единственным решением было бы найти версии со сходящейся зависимостью.

Если они могут использовать совместимые версии, используйте зависимость exclusion , для xmlParserAPIs.jar используйте только xml-api.jar.

Я не уверен, что это как-то повлияет на решение проблемы, но это происходит только в тестировании, потому что одна из зависимостей находится в области тестирования.

Нетэто просто объясняет, почему вы не получаете проблемы во время выполнения (потому что область действия test не находится на пути к классам и, очевидно, не конфликтует).

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