Maven — обнаружение нескольких версий одной и той же зависимости

Я только что столкнулся с двумя прямыми зависимостями моего проекта maven, имеющими две разные версии конкретной транзитивной зависимости.

В моем конкретном случае у меня были прямые зависимости от следующего:

    <dependency>
        <groupId>org.jclouds.driver</groupId>
        <artifactId>jclouds-sshj</artifactId>
        <version>${jclouds.version}</version>
    </dependency>

и

    <dependency>
        <groupId>org.mule.modules</groupId>
        <artifactId>mule-module-jersey</artifactId>
        <version>${mule.version}</version>
    </dependency>

Обе эти зависимости имели (глубокую) транзитивную зависимость от com.sun.jersey:jersey-core, но с разными версиями для каждого . Maven не ошибся в этом и даже не предупредил (а если и ошибся, то я никогда этого не видел!), что такое происходит... и поэтому я никогда не замечал этого, пока не отладил проблему, которая произошла, когда версия jersey- ядро, вызванное зависимостью jclouds, привело к поломке некоторых вещей.

Существует ли подключаемый модуль maven или какой-либо другой существующий инструмент, который обнаружит такое глубокое переопределение транзитивной зависимости и, по крайней мере, предупредит пользователя (или завершит выполнение maven), если он обнаружит такое столкновение... даже если по умолчанию поведение maven заключается в том, чтобы просто выбрать первую версию, которая появляется при разрешении зависимостей?

18
задан whaley 11 January 2014 в 13:20
поделиться