java.lang.Object
de.grogra.util.ComparableVersion
- All Implemented Interfaces:
Comparable<ComparableVersion>
Generic implementation of version comparison.
Features:
- mixing of '
-
' (hyphen) and '.
' (dot) separators, - transition between characters and digits also constitutes a separator:
1.0alpha1 => [1, [alpha, 1]]
- unlimited number of version components,
- version components in the text can be digits or strings,
- strings are checked for well-known qualifiers and the qualifier ordering is used for version ordering.
Well-known qualifiers (case insensitive) are:
alpha
ora
beta
orb
milestone
orm
rc
orcr
snapshot
(the empty string)
orga
orfinal
sp
- a hyphen usually precedes a qualifier, and is always less important than digits/number, for example
1.0.RC2 < 1.0-RC3 < 1.0.1
; but prefer1.0.0-RC1
over1.0.0.RC1
, and more generally:1.0.X2 < 1.0-X3 < 1.0.1
for any stringX
; but prefer1.0.0-X1
over1.0.0.X1
.
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
boolean
int
hashCode()
static void
Main to test version parsing and comparison.final void
parseVersion
(String version) toString()
-
Constructor Details
-
ComparableVersion
-
-
Method Details
-
parseVersion
-
compareTo
- Specified by:
compareTo
in interfaceComparable<ComparableVersion>
-
toString
-
getCanonical
-
equals
-
hashCode
public int hashCode() -
main
Main to test version parsing and comparison.To check how "1.2.7" compares to "1.2-SNAPSHOT", for example, you can issue
java -jar ${maven.repo.local}/org/apache/maven/maven-artifact/${maven.version}/maven-artifact-${maven.version}.jar "1.2.7" "1.2-SNAPSHOT"
command to command line. Result of given command will be something like this:Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1.2.7 == 1.2.7 1.2.7 > 1.2-SNAPSHOT 2. 1.2-SNAPSHOT == 1.2-snapshot
- Parameters:
args
- the version strings to parse and compare. You can pass arbitrary number of version strings and always two adjacent will be compared.
-