Consider the following POM snipped:
<versions>
<version>
<name>2.1</name>
<tag>TURBINE_2_1</tag>
</version>
<version>
<name>2.2</name>
<tag>TURBINE_2_2_0</tag>
</version>
<version>
<name>2.3-rc1</name>
<tag>TURBINE_2_3_RC1</tag>
</version>
<version>
<name>2.3-rc2</name>
<tag>TURBINE_2_3_RC2</tag>
</version>
<version>
<name>2.3</name>
<tag>TURBINE_2_3</tag>
</version>
<version>
<name>2.3.1-RC1</name>
<tag>TURBINE_2_3_1_RC1</tag>
</version>
<version>
<name>2.3.1-RC2</name>
<tag>TURBINE_2_3_1_RC2</tag>
</version>
<version>
<name>2.3.1</name>
<tag>TURBINE_2_3_1</tag>
<id>2.3.1</id>
</version>
<version>
<name>2.3.2-RC1</name>
<tag>TURBINE_2_3_2_RC1</tag>
</version>
</versions>
echoing ${pom.versions} under the 1.0.2 maven release issues the following output:
[echo] [2.1, 2.2, 2.3-rc1, 2.3-rc2, 2.3, 2.3.1-RC1, 2.3.1-RC2, 2.3.1, 2.3.2-RC1]
doing the same thing under the 1.1-beta 2 core results in
[echo] [null, null, null, null, null, null, null, 2.3.1, null]
It seems that 1.0 uses the name as key and 1.1 uses the id. This causes e.g. the clirr plugin to fail if a project
defines names for a version entry but no id.
If it is necessary that a version entry contains name and/or id, it should be enforced by the maven core and bad
entries should be reported.