M2E: Version is duplicate of parent version - Why is this a warning?

28,512

Solution 1

It´s just m2e trying to be clever because the version element (like group id) sometimes can be redundant and be can be inherited from the parent POM, so it would be safe to remove this element from your child POM.

But sometimes this is not a redundant information, like when the parent and the child project have different life cycles, and m2e should allow this warning to be disabled. Unfortunately there is no way to do this yet: http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

UPDATE: As Duncan says bellow, in newer versions you can disable this warning.

Solution 2

Newer versions of m2e (since 1.1) now allow you to disable this warning.

Preferences > Maven > Warnings > Disable "Version is duplicate of parent version" warning

Original bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=356796

Solution 3

If it really annoys you, use a property to supress the warning with some cunning sleight of hand:

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

but all you'll really be doing is moving the warning to the console output:

[WARNING] Some problems were encountered while building the effective model for [project]
[WARNING] 'version' contains an expression but should be a constant.
Share:
28,512
Doug Moscrop
Author by

Doug Moscrop

I've been programming since I was 8 and I've been good at it since [this space intentionally left blank]. I am passionate about the Web - particularly Hypermedia - but enjoy all manners of software development.

Updated on November 02, 2020

Comments

  • Doug Moscrop
    Doug Moscrop over 3 years

    I have several Maven projects that each have some common functionality or at least common configuration/dependencies. I extracted this in to a common pom.xml, and then modularlized several facets, for example persistence, Spring related dependencies, and so on - all in their own modules which inherit from this parent POM.

    Right now, "Common" is version 1.0.0 and I have "ProjectA" that I wish to inherit from it. I receive the warning:

    Version is duplicate of parent version

    I don't fully understand why this is a warning. I thought I had the option of omitting the version from my project POM in order to inherit the version. (I do this for common modules - for example, common-spring adds additional common dependencies for Spring apps, and in fact, ProjectA actually inherits from common-spring.)

    Isn't it just that - an option? If I change my ProjectA version to 1.0.1 or 2.0.0 all is well.

  • slf
    slf about 10 years
    +1 you can tick it on in the preferences, but you'll need to do Project > Maven > Update Project ... in order for them to go away
  • informatik01
    informatik01 almost 9 years
    @slf In the latest versions of Eclipse, as soon as you change Maven's Errors/Warnings settings in the preferences and click "Apply", a popup window will appear offering you to update projects now.