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

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

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

Версия является копией родительской версии

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

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

Ответы [ 3 ]

55 голосов
/ 03 октября 2012

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

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

Оригинальный отчет об ошибке: https://bugs.eclipse.org/bugs/show_bug.cgi?id=356796

54 голосов
/ 16 декабря 2011

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

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

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

2 голосов
/ 09 мая 2012

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

<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.
...