maven可以处理自定义限定符吗?

Dra*_*son 9 qualifiers maven

我正在试图弄清楚Maven的政策是否适用于自定义限定符.我知道maven检查的Version字符串中存在特定的限定符,例如:

1.0.0-SNAPSHOT

5.3.0-β-5

等,但我想知道我是否可以编写特定的规则或可以处理自定义限定符的东西,例如:

1.0.0-mybranch

5.3.0-myotherbranch

或者maven如何处理这样的版本字符串.我已经尝试过它们,事情似乎没问题,我只是想知道Maven是否有一些可以使用的自定义逻辑.

谢谢!

Bre*_*ter 8

这些例子可以正常工作.

除了以下内容之外,限定符没有特殊含义

  • SNAPSHOT,转换为正确的时间戳/内部版本号
  • 仅仅是数值,实际上是一个构建号而不是一个限定符(并且被认为比相应的基本版本更新)

所有限定符都被认为比相关版本更早,即1.2-beta-1 <1.2

限定符的比较是作为字符串比较完成的.这种行为在Maven 2.x和Maven 3.x中可能不同(在前者中,1.0-beta-10 <1.0-beta-5,在后者中它的行为与您期望的相反).


use*_*610 6

2011 年的答案现在在许多重要细节上已经过时。有关当前版本处理逻辑,请参阅https://maven.apache.org/ref/3.3.9/maven-artifact/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html上的 Javadoc和 Wiki 链接.

cf maven 如何对版本号进行排序?的 Javadoc 的评论ComparableVersion