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


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.