webentwicklung-frage-antwort-db.com.de

Maven - Überschreibende verwaltete Versionswarnung in Eclipse unterdrücken

Ich benutze spring-boot, und es ist ein Fehler ähnlich dem beschriebenen aufgetreten hier . Ich habe die folgende Datei zu meiner pom.xml hinzugefügt.

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$-->
        <version>1.1.0.Final</version>
    </dependency>

Ich überschreibe die in meiner übergeordneten Datei "pom.xml" definierte Abhängigkeit von "validation-api 1.0.0" durch "Spring Boot" und dies gibt die lästige Warnmeldung aus:

Überschreiben der verwalteten Version 1.0.0.GA für die Validierungs-API

Wie kann ich diese Warnmeldung in Eclipse dauerhaft unterdrücken? Es wird sowohl in meiner pom.xml- als auch in meiner Problemansicht angezeigt.

Wenn diese Warnung angezeigt wird, können Sie das Quick-Fix-Menü für die Warnung öffnen (Strg + 1) und auswählen

Ignorieren Sie diese Warnung

Dies fügt den Kommentar in die Versionszeile ein, wie:

<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.1.0.Final</version><!--$NO-MVN-MAN-VER$-->
</dependency>

Ihr Problem ist, dass Sie diesen Kommentar manuell in die falsche Zeile eingefügt haben.

33
Fred Bricon

Da das Projekt spring-boot Verwendet, finden Sie hier eine genauere Antwort: https://stackoverflow.com/a/35385268/1568658

(Und da ich das gleiche Problem habe und die obige Antwort auch nicht sehr vollständig ist. Ich würde hier eine Antwort hinzufügen.)

Grund der Ausgabe:

spring-boot Hat viele Abhängigkeiten und ihre Versionen definiert. Wenn Sie spring-boot Als übergeordnetes Element verwenden, wurden diese Abhängigkeiten vererbt. Wenn Sie eine der Abhängigkeiten mit einer anderen Version überschreiben, wird die Warnung angezeigt, da sie möglicherweise beschädigt wird Abhängigkeiten anderer Bibliotheken.

Lösung:

Definieren Sie eine Eigenschaft für diese Abhängigkeit zwischen <properties></properties>, Um die Version anzugeben.

z.B

        <properties>
            <reactor.version>2.5.0.BUILD-SNAPSHOT</reactor.version>
        </properties>

So finden Sie den Namen der Immobilie:

  • Öffnen Sie Ihre pom.xml in Eclipse.
  • ctrl + click Auf dem <parent> - Tag, um pom des übergeordneten Elements zu öffnen, und müssen zweimal rekursiv klicken, um schließlich mit artifactId als spring-boot-dependencies Zu pom zu gelangen.
  • Nachdem Sie diesen POM geöffnet haben, suchen Sie nach Ihrer Abhängigkeit, z. B. servlet-api, Und Sie können die Standardversion sehen.

Es gibt ein Dokument aus dem Frühjahr, das es besser erklärt: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

24
Eric Wang

Geben Sie die Version ein, die Sie im Hauptfenster benötigen.

Diese Warnung bedeutet, dass Sie versuchen, die Artefaktversion zu überschreiben, die in Ihrem Haupt-POM (oberste Ebene) definiert ist. Gib einfach die Version ein, die du in main pom brauchst und du brauchst nicht einmal <version /> in anderen poms für diese Abhängigkeit.

3
Dmitriy Bereza