Подтвердить что ты не робот

M2E: Версия является дубликатом родительской версии. Почему это предупреждение?

У меня есть несколько проектов Maven, каждый из которых имеет некоторую общую функциональность или, по крайней мере, общую конфигурацию/зависимости. Я извлек это в общий pom.xml, а затем смоделировал несколько граней, например, настойчивость, зависимые зависимости Spring и т.д. - все в своих собственных модулях, которые наследуются от этой родительской POM.

Прямо сейчас, "Common" - это версия 1.0.0, и у меня есть "ProjectA", который я хочу наследовать от него. Я получаю предупреждение:

Версия является дубликатом родительской версии

Я не совсем понимаю, почему это предупреждение. Я думал, что у меня есть возможность опустить версию из моего проекта POM, чтобы наследовать версию. (Я делаю это для общих модулей - например, common- spring добавляет дополнительные общие зависимости для приложений Spring, и на самом деле ProjectA фактически наследует от common- spring.)

Разве не это - вариант? Если я изменю свою версию ProjectA на 1.0.1 или 2.0.0, все будет хорошо.

4b9b3361

Ответ 1

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

Но иногда это не избыточная информация, например, когда родительский и дочерний проекты имеют разные жизненные циклы, а m2e должно позволить этому предупреждению быть отключенным. К сожалению, еще нет способа сделать это: http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

ОБНОВЛЕНИЕ: Как говорит Дункан, в новых версиях вы можете отключить это предупреждение.

Ответ 2

Более новые версии m2e (начиная с версии 1.1) теперь позволяют отключить это предупреждение.

Настройки > Maven > Предупреждения > Отключить предупреждение "Версия является дубликатом родительской версии"

Исходный отчет об ошибке: https://bugs.eclipse.org/bugs/show_bug.cgi?id=356796

Ответ 3

Если это действительно вас раздражает, используйте свойство, чтобы подавить предупреждение с некоторой хитрой ловкостью руки:

<version>${api.version}</version>
<properties>
    <api.version>0.0.1-SNAPSHOT</api.version>
</properties>

но все, что вы действительно делаете, это перемещение предупреждения на вывод консоли:

[WARNING] Some problems were encountered while building the effective model for [project]
[WARNING] 'version' contains an expression but should be a constant.