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. следовать "Эрику Ван"