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