Перевірити наявність оновлених залежностей у сховищі


167

Чи є плагін Maven, який дозволяє перевірити, чи є новіші версії залежностей, доступних у сховищі?

Скажімо, ви використовуєте залежність X з версією 1.2. Тепер випущена нова версія X із версією 1.3. Мені хотілося б знати, виходячи із залежностей, використаних у моєму проекті, які залежності мають новіші версії.


Питання, пов’язані з цим: stackoverflow.com/questions/431332 .
— Сергій Брунов

Відповіді:


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] ------------------------------------------------------------------------

Спасибі Паскаль. Ось що я шукав. Хоча для весняної версії 3.0.1. РЕЛІЗАЦІЯ повідомляє про нову версію 2.5.6. Може бути помилка в плагіні?
— froethen

1
@Felix Безкоштовно Щодо весняного артефакту, мені цікаво, чи проблема не пов’язана з тим, що Spring не дотримується "правила" : версія повинна бути 3.0.1-РЕЛІЗАЦІЯ, а не 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 Repositories. Це мовний агностичний інструмент, і крім Java він підтримує ще 7 мов. Крім простої функції слідування / сповіщення, вона також може безпосередньо відстежувати сховища GitHub та BitBucket і повідомляти про застарілі залежності у ваших проектах.

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

Також є API REST JSON для інтеграції інструментів.

До речі, я чувак, який розпочав цей проект. Повідомте мене, якщо у вас є питання.


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

3

Ви можете використовувати плагін Versions Maven [1] для створення звітів на вашому сайті Maven, щоб отримати список можливих оновлень. Що стосується нерівномірності Spring, то, здається, використовується система версій Меркурія [2]. Конфігуруючи плагін Versions, ви можете додати спеціальне правило для весняних матеріалів:

  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

Це дає більш стислий вигляд і повертає лише ті версії, які потрібно оновити в розділі властивостей.


Занижена відповідь.
— ROMANIA_engineer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.