Проверка Maven на наличие обновленных зависимостей в хранилище


167

Есть ли плагин Maven, который позволяет вам проверить, есть ли в хранилище более новые версии зависимостей?

Скажем, вы используете зависимость X с версией 1.2. Теперь новая версия X выпущена с версией 1.3. Я хотел бы знать, основываясь на зависимостях, используемых в моем проекте, какие зависимости имеют более новые доступные версии.


Ответы:


284

В версии Maven плагина и его display-dependency-updatesхаризма, что вы ищете:

mvn versions:display-dependency-updates

Вот как выглядит результат:

[INFO] ------------------------------------------------------------------------
[INFO] Building Build Helper Maven Plugin
[INFO]    task-segment: [versions:display-dependency-updates]
[INFO] ------------------------------------------------------------------------
[INFO] [versions:display-dependency-updates]
[INFO]
[INFO] The following dependency updates are available:
[INFO]   org.apache.maven:maven-artifact ........................ 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-plugin-api ...................... 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-project ....................... 2.0.2 -> 2.0.9
[INFO]   org.codehaus.plexus:plexus-utils ....................... 1.1 -> 1.5.6
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17 seconds
[INFO] Finished at: Fri Aug 15 10:46:03 IST 2008
[INFO] Final Memory: 10M/167M
[INFO] ------------------------------------------------------------------------

Спасибо Паскаль. Это то, что я искал. Тем не менее, для версии Spring 3.0.1.RELEASE сообщается о более новой версии 2.5.6. Может быть, ошибка в плагине?
— froethen

1
@ Феликс Добро пожаловать. Что касается артефакта Spring, мне интересно, если проблема не в том, что Spring не следует «правилу» : версия должна быть 3.0.1-RELEASE, а не 3.0.1.RELEASE. Другими словами, я не уверен, что это ошибка (я имею в виду, конечно, я ожидал, что плагин сообщит о версии 3.0.1.RELEASE как более новый, но я не уверен, что это будет принято как ошибка).
— Паскаль Thivent

1
Проверка обновлений maven-plugin-apiтакже может быть использована для проверки более новых версий самого Maven, поскольку новая версия этой зависимости выпускается для каждого выпуска Maven.
— Тунаки

Это хорошо знать. Однако есть ли способ получить этот отчет при создании проекта вместо того, чтобы вводить эту команду явно?
— Фредерик

33

Если вы хотите получать уведомления по электронной почте, когда в Maven Central доступны более новые версии артефактов, вы можете создать учетную запись на слушателе артефактов и выбрать, какой артефакт вы хотите использовать.
Вы можете либо искать артефакты вручную, либо напрямую загружать свой pom.xml.

Вы будете периодически получать уведомления, подобные этому (в настоящее время доступны на английском и французском языках):

Слушатель артефактов Maven


22

VersionEye Maven плагин делает то же самое: versioneye_maven_plugin .

VersionEye также может уведомлять вас о новых версиях в репозиториях Maven. Это независимый от языка инструмент, кроме Java он поддерживает 7 других языков. Помимо простой функции отслеживания / уведомления, он также может напрямую отслеживать GitHub и BitBucket-репозитории и уведомлять вас об устаревших зависимостях в ваших проектах.

введите описание изображения здесь

Существует также REST JSON API для интеграции инструментов.

Кстати, я чувак, который начал этот проект. Дайте мне знать, если у вас есть вопросы.


1
Проект закрыт :(
— Алиреза Фаттахи

3

Вы можете использовать плагин Versions Maven [1] для создания отчетов на вашем сайте Maven, чтобы получить список возможных обновлений. Что касается нерегулярности Spring, то, похоже, используется система версий Mercury [2]. При настройке плагина Versions вы можете добавить специальное правило для Spring:

  1. http://mojo.codehaus.org/versions-maven-plugin/
  2. http://docs.codehaus.org/display/MAVEN/Mercury+Version+Ranges

2
не могли бы вы привести пример?
— Заратустра

1

В проектах с большим количеством зависимостей вы иногда сохраняете свои версии в разделе свойств.

    <properties>
        <assertj.version>3.15.0</assertj.version>
        <aws-sdk.version>1.11.763</aws-sdk.version>
        <cxf.version>3.3.6</cxf.version>

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

mvn versions:display-property-updates

Это дает более сжатое представление и возвращает только версии, которые необходимо обновить в разделе свойств.


Недооцененный ответ.
— РУМЫНИЯ_инженер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.