We're updating the issue view to help you get more done. 

Wrong use of maven version schema

Description

Maven comes with a great feature: It can automatically load the latest bug fix of an artifact within a given feature range. For example, a dependency to <version>[4.1, 4.2)</version> will always use the latest bug fix for 4.1, but will never use a version prio 4.1.0 or later 4.1.999. This is great, as everybody wants latest bug fixes for maximum stability, but certainly an API change (like a switch from 4.1.x to 4.2.x) is not wanted to get done automatically.

The trick to make this work is simple: The version of an artifact must be X.Y.Z-F where X, Y and Z must be integers and F can be a string. If "-F" is given (like in "-Alpha-1"), it will be treated as "prior to X.Y.Z" (PRE-GA) so it will NOT be part of [X, X+1). Hence, one is safe to not get pre-releases, but only STABLE (POST-GA) releases of X and later.

Unfortunately your artifacts do not use this well-documented and well-known, commonly-used schema. You are using "5.0.0.Alpha1" instead of "5.0.0-Alpha-1". The problem with this is the missing dash before "Alpha": This makes Maven think that the complete version String (including 5.0.0) is NOT A NUMBER and such Maven will always think that it is LATER THAN 5.0.0 (POST-GA), while certainly 5.0.0-Alpha-1 is PRE-GA!

This is not very smart and makes it hard to use the latest bug fix in an automated way!

PLEASE STOP THIS MISUSE OF THE VERSION ATTRIBUTE AND START USING VERSION NUMBERS IN THE WAY MAVEN WAS INTENDED TO WORK

Environment

Maven

Status

Assignee

Unassigned

Reporter

Markus Karg

Labels

None

Worked in

None

Feedback Requested

None

Feedback Requested By

None

backPortable

None

Community Help Wanted

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

backportReEvaluate

None

Affects versions

5.0.0.Alpha1

Priority

Critical