2014-11-26 4 views
0

Я изучал maven, в настоящее время использую Ant. Приложение, которое мы используем здесь, имеет разные модули. Теперь, если я добавляю зависимости к тем, как я могу решить конфликт версий. Пример модуля A имеет зависимость от версии 1. в то время как модуль B теперь имеет зависимость от версии 2. Если кому-то нужно работать вместе с модулем вместе, то он автоматически решит версию версии 2, которая является более высокой.Как разрешить зависимость между различными версиями

Есть ли какое-либо внутреннее поведение maven или любой команды, которую я могу использовать для разрешения конфликтов версий?

ответ

0

Maven «решает» эту проблему, используя ближайшее объявление для транзитных зависимостей.

например.

А -> X -> externalLib 2.0 Б -> externalLib 1,0

С -> А, В, приведет при помощи externalLib 1.0, так как декларации (над В) 1,0 находится ближе к C, что над А и X Если они имеют одинаковое расстояние, решает положение в файле POM.

Это, как правило, не такое «решение», которое вы хотите. Так как они могут быть несовместимы, лучше выбрать версию manualle явно и объявить эту версию в ПОМЕ С

C -> externalLib 2,1

Обратите внимание, если нет никакой версии, которая совместима с Й и B, нет решения, и Java не поддерживает несколько версий одного и того же lib в одном загрузчике классов. В этом случае вы должны думать об использовании OSGi или подобных.

Смежные вопросы