Maven sprawdza zaktualizowane zależności w repozytorium


167

Czy istnieje wtyczka Maven, która pozwala sprawdzić, czy w repozytorium są dostępne nowsze wersje zależności?

Powiedzmy, że używasz zależności X z wersją 1.2. Teraz nowa wersja X jest wydana z wersją 1.3. Chciałbym wiedzieć, na podstawie zależności używanych w moim projekcie, które zależności mają nowsze wersje.


Odpowiedzi:


284

Te wersje Maven plugin i jego display-dependency-updatesmojo to, czego szukasz:

mvn versions:display-dependency-updates

Oto jak wygląda wynik:

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

Dzięki Pascal. Tego właśnie szukałem. Jednak dla Spring w wersji 3.0.1.RELEASE zgłasza nowszą wersję 2.5.6. Może błąd we wtyczce?
froethen

1
@Felix Nie ma za co. Jeśli chodzi o artefakt Spring, zastanawiam się, czy problem nie wynika z faktu, że Spring nie przestrzega „reguły” : wersja powinna być 3.0.1-RELEASE, a nie 3.0.1.RELEASE. Innymi słowy, nie jestem pewien, czy to błąd (mam na myśli, pewnie, spodziewałbym się, że wtyczka również zgłosi wersję 3.0.1.RELEASE jako nowszą, ale nie jestem pewien, czy zostanie to zaakceptowane jako błąd).
Pascal Thivent

1
Sprawdzanie aktualizacji maven-plugin-apimoże być również używane do sprawdzania nowszych wersji samego Mavena, ponieważ nowa wersja tej zależności jest wydawana dla każdego wydania Mavena.
Tunaki

Dobrze wiedzieć. Czy istnieje jednak sposób na uzyskanie tego raportu, gdy budujemy projekt, zamiast jawnie wpisywać to polecenie?
Frederic

33

Jeśli chcesz otrzymywać powiadomienia e-mail, gdy nowsze wersje artefaktów są dostępne w Maven Central , możesz utworzyć konto na artefakt-nasłuchiwaniu i wybrać, który artefakt chcesz śledzić.
Możesz ręcznie wyszukać artefakty lub bezpośrednio przesłać plik pom.xml.

Będziesz okresowo otrzymywać takie powiadomienia (dostępne na razie w języku angielskim i francuskim):

Słuchacz artefaktów Mavena


22

VersionEye Maven Plugin robi ten sam: versioneye_maven_plugin .

VersionEye może również powiadamiać Cię o nowych wersjach w repozytoriach Maven. Jest to narzędzie niezależne od języka i oprócz Javy obsługuje 7 innych języków. Oprócz prostej funkcji śledzenia / powiadamiania może również bezpośrednio monitorować repozytoria GitHub i BitBucket i powiadamiać o przestarzałych zależnościach w twoich projektach.

wprowadź opis obrazu tutaj

Istnieje również REST JSON API do integracji narzędzi.

Swoją drogą, jestem kolesiem, który rozpoczął ten projekt. Daj mi znać, jeśli masz pytania.


1
Projekt jest zamknięty :(
Alireza Fattahi

3

Możesz użyć wtyczki Versions Maven [1] do generowania raportów w witrynie Maven w celu uzyskania listy możliwych aktualizacji. Jeśli chodzi o nieregularność Springa, wydaje się, że wykorzystuje on system wersjonowania Mercury [2]. Konfigurując wtyczkę Versions, możesz dodać specjalną regułę dla rzeczy Spring:

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

2
czy możesz podać przykład?
Zaratustra

1

W projektach z dużą liczbą zależności czasami przechowujesz swoje wersje w sekcji właściwości.

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

W przypadku, gdy interesują Cię tylko aktualizacje tych wersji, możesz użyć następującego polecenia

mvn versions:display-property-updates

Daje to bardziej skondensowany widok i zwraca tylko wersje, które należy zaktualizować w sekcji właściwości.


Niedoceniona odpowiedź.
ROMANIA_engineer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.