Проверка 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.