Отладка Maven "Артефакт не имеет допустимых диапазонов" - PullRequest
1 голос
/ 02 ноября 2009

Мы используем Maven на работе довольно регулярно, мы получаем сообщение об ошибке «Артефакт не имеет допустимых диапазонов». После долгого поиска в Google и экспериментов я понял, что означает это сообщение об ошибке: У артефакта есть допустимые диапазоны, слишком много их.

Например, мой главный POM зависит только от superframework v.1.0, но также существует транзитивная зависимость от superframework v.0.5-0.9.

До сих пор всякий раз, когда у меня возникала такая проблема, я смотрел (очень загадочное) сообщение об ошибке и как-то догадывался, какой POM мне нужно изменить - в основном, много пробных ошибок Проблема в том, что mvn dependency:tree не работает, если у вас есть проблема разрешения зависимостей.

Плагин Eclipse иногда немного помогает, но иногда это далеко.

Какие-нибудь советы о том, как решить эти проблемы?

Ответы [ 2 ]

3 голосов
/ 03 ноября 2009

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

Я предпочитаю использовать фиксированные версии (которые также упрощают разрешение конфликтов зависимостей, см. Примечание внизу 9.4.3. Диапазоны версий зависимостей ) и интенсивно использовать отчет о сходимости зависимостей чтобы управлять ими.

0 голосов
/ 04 ноября 2009

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

Итак, если вы включите зависимость от

superframework [0.5,1.5)

получит последнюю доступную версию, скажем, 1.1.

Если у вас есть транзитивная зависимость, которая включает в себя

superframework [0.5, 1.0)

Maven сгенерирует эту вводящую в заблуждение ошибку, поскольку он не будет выбирать ничего, кроме уже имеющейся у него версии 1.1, даже если он мог просто выбрать 0,9 без возникновения конфликта версий. Если вы поменяете порядок, странно, это работает.

Правильно ли я считаю, что это недостаток в поведении Мейвена?

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