Maven - Suppress Переопределение предупреждений об управляемой версии в Eclipse

Я использую spring-boot и столкнулся с ошибкой, подобной описанной здесь. Я добавил следующее в pom.xml.

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

Я переопределяю зависимость validation-api 1.0.0, определенную в моем родительском pom.xml, с помощью Spring boot, и это приводит к предупреждающему сообщению:

Переопределение управляемой версии 1.0.0.GA для проверки-api

Как я могу навсегда подавить это предупреждающее сообщение в Eclipse? Он отображается как в моем представлении pom.xml, так и в моих проблемах.

Ответы

Ответ 1

Когда появится это предупреждение, вы можете открыть меню быстрого исправления в предупреждении (Ctrl + 1) и выбрать

Игнорировать это предупреждение

Это добавит комментарий к строке версии, например:

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

Ваша проблема заключается в том, что вы вручную добавили комментарий о неправильной строке.

Ответ 2

Поскольку проект использует spring-boot, более правильный ответ можно найти здесь: fooobar.com/questions/383932/...

(И так как я получил ту же проблему, и выше ответ также не очень полный. Я бы добавил ответ здесь.)

Причина выпуска:

spring-boot определил множество зависимостей и их версию, когда вы добавляете использование spring -boot в качестве родителя, эти зависимости получили наследование, и переопределение одной из зависимостей с другой версией получило бы предупреждение, так как оно могло быть нарушено зависимости других библиотек.

Решение:

Определите свойство для этой зависимости между <properties></properties>, чтобы указать версию.

например

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

Как найти имя свойства:

  • Откройте pom.xml в eclipse.
  • ctrl + click в теге <parent>, чтобы открыть pom родителя, и вам нужно дважды щелкнуть дважды, чтобы, наконец, получить pom с artifactId как spring-boot-dependencies
  • Как только у вас откроется этот pom, найдите свою зависимость, например servlet-api, и вы увидите версию по умолчанию.

Существует документ из spring, который объясняет это лучше: https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot

Ответ 3

Введите версию, которая вам нужна в главной папке.

Это предупреждение означает, что вы пытаетесь переопределить версию артефакта, которая определена в вашем основном (верхнем уровне) pom. Просто введите версию, которая вам нужна в основном pom, и вам даже не нужно использовать <version /> для других poms для этой зависимости.

Ответ 4

полезно! Я разрешаю проблему. Поскольку модуль pom файла объявляет 9.2.12.M0, а spring -boot относится к V9.3. Я перезаписываю V9.2 в родительском файле pom. следовать "Эрику Ван"