Может ли Maven обрабатывать пользовательские квалификаторы? - PullRequest
8 голосов
/ 16 августа 2011

Я пытаюсь выяснить, применяется ли политика Maven к пользовательским классификаторам.Я знаю, что в строках версий существуют определенные квалификаторы, которые проверяет maven, например:

1.0.0-SNAPSHOT

5.3.0-beta-5

и т. Д.,но мне было интересно, смогу ли я написать конкретные правила или что-то, что могло бы обрабатывать пользовательские квалификаторы, такие как:

1.0.0-mybranch

5.3.0-myotherbranch

иликак Maven будет иметь дело с такими версиями строк.Я их опробовал, и все вроде бы нормально, мне просто интересно, есть ли в Maven какая-то нестандартная логика, которую можно использовать.

Спасибо!

Ответы [ 2 ]

8 голосов
/ 16 августа 2011

Эти примеры будут работать нормально.

Квалификаторы не имеют специального значения, кроме:

  • SNAPSHOT, который преобразуется в правильную метку времени / номер сборки
  • исключительно числовые значения, которые на самом деле являются номером сборки вместо квалификатора (и считаются более новыми, чем соответствующая базовая версия)

Все квалификаторы считаются старше соответствующих версий, то есть 1.2-бета-1 <1.2 </p>

Сравнение классификаторов выполняется как сравнение строк. Это поведение может отличаться в Maven 2.x и Maven 3.x (в первом случае 1.0-бета-10 <1.0-бета-5, во втором оно ведет себя в обратном порядке, как и следовало ожидать). </p>

3 голосов
/ 05 августа 2016

Ответ 2011 года устарел во многих важных деталях.См. Javadoc на https://maven.apache.org/ref/3.3.9/maven-artifact/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html и ссылку Wiki там для логики обработки текущей версии.

cf Как maven сортирует номера версий?

...