[ https://issues.apache.org/jira/browse/MNG-6964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17162012#comment-17162012 ]
Dennis Lundberg commented on MNG-6964: -------------------------------------- I think that you are missing my point. The version numbers that you have used in your console example are very odd, and also they do not conform to the semver specification. If I make a guess as to what you want to compare, it would look like this, using more usual version numbers: {noformat} $ java -jar maven-artifact-3.6.3.jar 1.0-alpha 1 Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1.0-alpha == 1-alpha 1.0-alpha < 1 2. 1 == 1 $ java -jar maven-artifact-3.6.3.jar 1.0-beta 1 Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1.0-beta == 1-beta 1.0-beta < 1 2. 1 == 1 $ java -jar maven-artifact-3.6.3.jar 1.0-beta 1.0-alpha Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1.0-beta == 1-beta 1.0-beta > 1.0-alpha 2. 1.0-alpha == 1-alpha {noformat} As you can see these results are different than yours, and inline with your expectations. > Maven version sorting is internally inconsistent > ------------------------------------------------ > > Key: MNG-6964 > URL: https://issues.apache.org/jira/browse/MNG-6964 > Project: Maven > Issue Type: Bug > Components: core > Affects Versions: 3.6.3 > Reporter: David M. Lloyd > Priority: Major > > There's a bug where version sorting is inconsistent. This manifests like this: > {code:java} > $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.alpha 1 > Display parameters as parsed by Maven (in canonical form) and comparison > result: > 1. 1-0.alpha == 1-0.alpha > 1-0.alpha == 1 > 2. 1 == 1 > $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.beta 1 > Display parameters as parsed by Maven (in canonical form) and comparison > result: > 1. 1-0.beta == 1-0.beta > 1-0.beta == 1 > 2. 1 == 1 > $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.beta > 1-0.alpha > Display parameters as parsed by Maven (in canonical form) and comparison > result: > 1. 1-0.beta == 1-0.beta > 1-0.beta > 1-0.alpha > 2. 1-0.alpha == 1-0.alpha > {code} > Thus there is no correct total order: {{1-0.beta > 1.0.alpha}} even though > both {{1-0.beta}} and {{1-0.alpha}} are equal to {{1}}. > I think this is likely due to a logical bug where any dot-separated segments > following a zero or release ({{ga}} or {{final}}) is simply truncated in > certain circumstances: > {code:java} > $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.x 1-0 > Display parameters as parsed by Maven (in canonical form) and comparison > result: > 1. 1-0.x == 1-0.x > 1-0.x == 1-0 > 2. 1-0 == 1 > {code} > but > {code:java} > $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.x-1 1-0-1 > Display parameters as parsed by Maven (in canonical form) and comparison > result: > 1. 1-0.x-1 == 1-0.x-1 > 1-0.x-1 > 1-0-1 > 2. 1-0-1 == 1-1 > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)