2015-06-11 6 views
14

Ich benutze spring-boot, und erlebte einen Fehler ähnlich dem beschriebenen here. Ich habe meiner pom.xml Folgendes hinzugefügt.Maven - Unterdrückte überschreiben verwaltete Version Warnung in Eclipse

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

Ich bin das Überschreiben der Validierung-api 1.0.0 Abhängigkeit in meinen Eltern pom.xml definiert, durch Feder Boot, und das gibt die nervtötende Warnmeldung:

Overriding managed version 1.0.0.GA for validation-api

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

+0

Aktualisieren Sie die Version in der angegebenen Elternpom. – khmarbaise

+0

Hinzufügen des Kommentars funktioniert für mich. –

+0

Danke für die Antworten. RE Update der Eltern Pom ... Ich besitze nicht die Eltern Pom, es ist über Spring Boot geerbt. RE hinzufügen das hat auch nicht funktioniert, aber ich weiß nicht, ob ich es richtig benutzt habe. Ich würde auch gerne mehr darüber erfahren, wenn das die Warnung beseitigt. –

Antwort

19

Wenn diese Warnung erscheint, können Sie das Quick-Fix-Menü öffnen auf der Warnung (Strg + 1) und wählen Sie

Ignore this warning

Dies wird den Kommentar auf der Versionszeile hinzufügen, 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 den Kommentar in die falsche Zeile manuell hinzugefügt haben.

+0

dies funktionierte zum Entfernen von Warnungen in Eclipse gezeigt, aber ich kann immer noch nicht das Projekt zu bauen. den Fehler erhalten: 'Regel 0: org.commonjava.maven.enforcer.rule.EnforceManagedDepsRule ist mit der Nachricht fehlgeschlagen: Die folgenden 2 Abhängigkeiten verwenden KEINE verwaltete Version' –

+2

Dies ist ein schlechter Weg, um das Problem zu lösen, weil es die Abhängigkeit anderer Bibliotheken. –

2

Geben Sie die Version ein, die Sie in Hauptpom benötigen.

Diese Warnung bedeutet, dass Sie versuchen, die Artefaktversion zu überschreiben, die in Ihrem Hauptpom (oberste Ebene) definiert ist. Geben Sie einfach die Version ein, die Sie in main pom benötigen, und Sie müssen nicht einmal <version /> in anderen Poms für diese Abhängigkeit verwenden.

5

Da das Projekt spring-boot verwendet wird, eine richtige Antwort finden Sie hier konnte. https://stackoverflow.com/a/35385268/1568658

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

Grund der Ausgabe:

spring-boot hat viele Abhängigkeiten & ihre Version definiert, wenn Sie den Einsatz von Feder-Boot als pare hinzufügen Diese Abhängigkeiten wurden geerbt, und das Überschreiben einer der Abhängigkeiten mit einer anderen Version führte zu einer Warnung, weil dadurch die Abhängigkeiten anderer Bibliotheken unterbrochen wurden.

Lösung:

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

beispiel

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

Wie die Eigenschaftsnamen zu finden:

  • Ihre pom.xml in Eclipse öffnen.
  • ctrl + click auf dem <parent> Tag pom von Eltern zu öffnen und müssen zweimal umgekehrt klicken, um schließlich mit artifactId als spring-boot-dependencies
  • pom zu erhalten Sobald die Sie geöffnet haben, dass pom, suchen Sie nach Ihrer Abhängigkeit, e.g servlet-api, und Sie können die Standardversion sehen.

ein Dokument vom Frühling Es wird erklärt, es besser: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

-1

nützlich! Ich löse das Problem. Wie das Modul Pom-Datei 9.2.12.M0 deklarieren, während die Spring-Boot beziehen sich auf die V9.3. Ich überschreibe die V9.2 in der Elternpom-Datei. Folge von "Eric Wang"

+0

feder Boot die die Standardversion verwenden, die in der pom-Datei als Element deklariert werden kann ist \t \t \t \t \t \t \t \t \t org.springframework.boot \t \t \t \t Feder-boot-Abhängigkeiten \t \t \t \t 1.5.1.RELEASE \t \t \t \t pom \t \t \t \t Import \t \t \t \t \t \t, sollten Sie Ihre eigene Version erklären zu überschreiben die Standardversion. –