Maven controleren op bijgewerkte afhankelijkheden in repository

Is er een Maven-plug-in waarmee u kunt controleren of er nieuwere versies van afhankelijkheden beschikbaar zijn in de repository?

Stel, u gebruikt afhankelijkheid X met versie 1.2. Nu is er een nieuwe versie van X uitgebracht met versie 1.3. Ik zou graag willen weten, op basis van de afhankelijkheden die in mijn project worden gebruikt, voor welke afhankelijkheden nieuwere versies beschikbaar zijn.


Antwoord 1, autoriteit 100%

De Maven Versions-plug-inen het is display-dependency-updatesmojo zijn wat je bent op zoek naar:

mvn versions:display-dependency-updates

Zo ziet de uitvoer eruit:

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

Antwoord 2, autoriteit 11%

Als u e-mailmeldingen wilt ontvangen wanneer nieuwere artefactversies beschikbaar zijn op Maven Central, kunt u een account aanmaken op artifact-listeneren kies welk artefact je wilt volgen.
U kunt handmatig naar artefacten zoeken of uw pom.xml rechtstreeks uploaden.

Je ontvangt regelmatig meldingen zoals deze (momenteel beschikbaar in het Engels en Frans):

Maven artefact luisteraar


Antwoord 3, autoriteit 7%

De VersionEyeMaven Plugin doet hetzelfde: versioneye_maven_plugin.

VersionEye kan u ook informeren over nieuwe versies op Maven Repositories. Het is een taalonafhankelijke tool en ondersteunt naast Java nog 7 andere talen. Naast de eenvoudige volg-/meldingsfunctie kan het ook GitHub- en BitBucket-repositories direct bewaken en u informeren over verouderde afhankelijkheden in uw projecten.

voer hier de afbeeldingsbeschrijving in

Er is ook een REST JSON APIvoor toolintegraties.

Trouwens, ik ben de gast die dit project is begonnen. Laat het me weten als je vragen hebt.


Antwoord 4, autoriteit 4%

In projecten met een groot aantal afhankelijkheden bewaar je je versies soms in een eigenschappensectie.

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

In het geval dat u alleen geïnteresseerd bent in updates van die versies, kunt u de volgende opdracht gebruiken

mvn versions:display-property-updates

Dit geeft een beknopter beeld en retourneert alleen de versies die u moet bijwerken in het eigenschappengedeelte.


Antwoord 5

De ideale manier om dit te doen is om afhankelijkheidsversies in te stellen als eigenschappen in pom.xml en vervolgens de onderstaande opdracht uit te voeren om de bijgewerkte versies voor uw specifieke/aangepaste afhankelijkheden te krijgen.

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <skip.tests>true</skip.tests>
    <spring-cloud-gcp.version>1.2.3.RELEASE</spring-cloud-gcp.version>
    <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
    <spring-cloud-stream-schema.version>2.2.1.RELEASE</spring-cloud-stream-schema.version>
    <confluent.version>5.5.1</confluent.version>
    <avro.version>1.10.0</avro.version>
    <janino.version>3.1.2</janino.version>
    <swagger.version>2.9.2</swagger.version>
    <google-cloud-logging-logback.version>0.118.1-alpha</google-cloud-logging-logback.version>
    <spring-cloud-stream-binder-kafka.version>3.0.6.RELEASE</spring-cloud-stream-binder-kafka.version>
</properties>
mvn versions:display-property-updates
[INFO] The following version properties are referencing the newest available version:
[INFO]   ${avro.version} .............................................. 1.10.0
[INFO]   ${spring-cloud-stream-schema.version} ................. 2.2.1.RELEASE
[INFO]   ${janino.version} ............................................. 3.1.2
[INFO] The following version property updates are available:
[INFO]   ${spring-cloud-gcp.version} .......... 1.2.3.RELEASE -> 1.2.5.RELEASE
[INFO]   ${google-cloud-logging-logback.version}  0.118.1-alpha -> 0.118.2-alpha
[INFO]   ${spring-cloud-stream-binder-kafka.version}  3.0.6.RELEASE -> 3.0.8.RELEASE
[INFO]   ${confluent.version} ................................. 5.5.1 -> 6.0.0
[INFO]   ${swagger.version} ................................... 2.9.2 -> 3.0.0
[INFO]   ${spring-cloud.version} .................... Hoxton.SR6 -> Hoxton.SR8
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.572 s
[INFO] Finished at: 2020-10-06T09:35:08-07:00
[INFO] ------------------------------------------------------------------------

Een andere manier om dit te bereiken is door het commando mvn versions:display-dependency-updatesuit te voeren, maar het probleem dat ik tegenkom met deze aanpak is dat het me ook updates laat zien voor de geneste afhankelijkheden die dat niet zijn. te nuttig voor mij.


Antwoord 6

U kunt de Versions Maven-plug-in [1] gebruiken om rapporten op uw Maven-site te genereren om een ​​lijst met mogelijke updates te krijgen. Wat betreft de onregelmatigheid van Spring, het lijkt het Mercury-versiesysteem te gebruiken[2]. Bij het configureren van de Versions-plug-in, kunt u een speciale regel voor Spring-dingen toevoegen:

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

Other episodes