web-dev-qa-db-fra.com

Maven - Supprimer l'avertissement de remplacement de version gérée dans Eclipse

J'utilise spring-boot, et a rencontré une erreur similaire à celle décrite ici . J'ai ajouté ce qui suit à mon pom.xml.

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

Je remplace la dépendance validation-api 1.0.0 définie dans mon parent pom.xml, au moyen du démarrage de Spring, ce qui donne le message d'avertissement embêtant:

Remplacement de la version gérée 1.0.0.GA pour validation-api

Comment puis-je supprimer définitivement ce message d'avertissement dans Eclipse? Cela apparaît à la fois dans mon pom.xml et dans ma vue des problèmes.

Lorsque cet avertissement s’affiche, vous pouvez ouvrir le menu Correction rapide de l’avertissement (Ctrl + 1) et sélectionner

Ignorer cet avertissement

Cela ajoutera le commentaire sur la ligne de version, comme:

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

Votre problème est que vous avez ajouté manuellement ce commentaire sur la mauvaise ligne.

33
Fred Bricon

Puisque le projet utilise spring-boot, une réponse plus appropriée pourrait être trouvée ici: https://stackoverflow.com/a/35385268/1568658

(Et depuis que j'ai le même problème, et la réponse ci-dessus n'est pas très complète. J'ajouterais une réponse ici.)

Raison de l'émission:

spring-boot a défini de nombreuses dépendances et leurs versions, lorsque vous utilisez spring-boot en tant que parent, ces dépendances ont été héritées et le remplacement de l'une des dépendances par une version différente provoquerait l'avertissement, car cela risquerait de rompre les dépendances d'autres bibliothèques.

Solution:

Définissez une propriété pour cette dépendance entre <properties></properties>, pour spécifier la version.

par exemple

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

Comment trouver le nom de la propriété:

  • Ouvrez votre pom.xml dans Eclipse.
  • ctrl + click sur le <parent> balise pour ouvrir le pompon du parent et il faut cliquer deux fois de manière récursive pour arriver à pom avec artifactId en tant que spring-boot-dependencies
  • Une fois que vous avez ouvert ce pom, recherchez votre dépendance, par exemple servlet-api, et vous pouvez voir la version par défaut.

Il existe un document de printemps l'explique mieux: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

24
Eric Wang

Entrez la version dont vous avez besoin dans le pom principal.

Cet avertissement signifie que vous essayez de remplacer la version d'artefact définie dans votre pom principal (niveau supérieur). Il suffit d'entrer la version dont vous avez besoin dans pom principal et vous n'avez même pas besoin d'utiliser <version /> dans d'autres poms pour cette dépendance.

3
Dmitriy Bereza