Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.1-beta-2
-
Fix Version/s: None
-
Component/s: core
-
Labels:None
-
Number of attachments :
Description
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.
Activity
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | 1.1-beta-3 [ 11989 ] |
| Workflow | Maven [ 39448 ] | Maven New [ 51705 ] |
| Fix Version/s | 1.1-beta-3 [ 11989 ] |
| Fix Version/s | 1.1-rc1 [ 11971 ] |
| Fix Version/s | 1.1-rc1 [ 11971 ] |
The pom:validate goal correctly reports an error here because the id element is required by the xsd. However, we need some basic validation routine within the core, how is this done in m2?