Как обновить локальный репозиторий maven новыми артефактами из удаленного репозитория? - PullRequest
12 голосов
/ 06 апреля 2010

Мой модуль maven A зависит от другого модуля maven B, предоставленного другими людьми. Когда я впервые запускаю «mvn install» под A, maven загружает B-1.0.jar из удаленного репозитория в мой локальный репозиторий maven. Мой модуль А работает нормально.

В то же время другие люди внедряют более новую версию B-1.0.jar в удаленный репозиторий. Когда я снова запускаю «mvn install» под A, maven не загружает более новый B-1.0.jar из удаленного репозитория в мой локальный репозиторий. В результате моя сборка модуля A завершается неудачно из-за изменений API в B-1.0.jar.

Я мог бы вручную удалить B-1.0.jar из моего локального репозитория. Затем maven будет загружать последнюю версию B-1.0.jar из удаленного репозитория при следующем запуске mvn install.

Мой вопрос заключается в том, как я могу автоматически разрешить maven загружать последние артефакты из удаленного хранилища. Я пытался установить updatePolicy на «всегда». Но это не помогло.

Ответы [ 2 ]

28 голосов
/ 06 апреля 2010

Maven никогда не перезагружает релизы - 1.0 считается окончательным, и в новых выпусках должна использоваться новая версия.

Если модуль B все еще находится в разработке, вам следует использовать версию 1.0-SNAPSHOT - снимки - это специальная версия Maven, которая будет проверять наличие обновлений, а при развертывании хранится с отметкой времени и номером сборки для отслеживания.

2 голосов
/ 10 апреля 2010

Я согласен с Бреттом выше: в новых выпусках должны использоваться новые версии. Для вашего случая снимки, вероятно, являются лучшим решением, но еще может быть полезным использование диапазонов версий зависимостей .

Тем самым вы можете указать версию
(1.0,)
заявив, что вы принимаете любую версию больше 1.0.
или
[1.1.1,1.1.7]
принимать что-либо между (включая) версиями 1.1.1 и 1.1.7.
Обозначения соответствуют стандартному синтаксису математического интервала, где

[= включение в интервал
(= исключение из интервала

(в школе я всегда думал, что квадратные скобки «держат» этот элемент, в то время как более мягкие скобки «отпускают»)

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

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