2011-01-24 3 views
1

У меня странная ситуация. В jar A я явно вношу версию 1.3 commons-dbcp. В jar B у меня есть зависимость от jar A. Однако, когда я ввожу в зависимость jar A в jar B, моя иерархия зависимостей maven показывает, что jar B теперь использует 1.4. Если я удалю эту зависимость, commons-dbcp исчезнет из моей иерархии зависимостей maven, поэтому я уверен, что ее не тянут в другом месте. И когда я в иерархии зависимостей maven jar A, он показывает только 1.3.1.4 Commons-DBCP вместо 1,3

Кто-нибудь может понять, почему это может произойти?

ответ

1

Maven автоматически определяет версию для ввода транзитивных зависимостей. У вас может быть более одной зависимости от commons-dbcp (возможно, вы тестируете, не показываете это, если они находятся в разной области). Используйте Maven dependency plugin через mvn dependency:tree, чтобы просмотреть другие зависимости.

+0

У меня есть только одна зависимость от commons-dbcp в соответствии с этим. – AHungerArtist

+0

Вам следует подробнее разослать свои детали. Покажи свою грудь. Показывать вывод из зависимости: дерево и т. Д. Единственный раз, когда я когда-либо сталкивался с выводом mvn в другой версии, чем запрашиваемая, объясняется переходными зависимостями. Я предполагаю, что это может произойти, если у вас есть это вдвойне определено - один раз в разделе dependcyManagement и еще раз в зависимостях? – harschware

+0

После того, как я снова посмотрел на вещи, я понял проблему и почему она не появилась в предыдущей банке или дереве зависимостей. Версия dbcp устанавливалась в родительском помпе, который использует наша команда, и это то, что ее отменяет. Вы заставили меня подумать об этом, чтобы расследовать это так, спасибо. – AHungerArtist

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