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

时间:2011-08-15 23:54:20

标签: maven qualifiers

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

1.0.0-SNAPSHOT

5.3.0-β-5

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

1.0.0-mybranch

5.3.0-myotherbranch

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

谢谢!

2 个答案:

答案 0 :(得分:8)

这些例子可以正常使用。

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

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

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

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

答案 1 :(得分:3)

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

c.f。 How does maven sort version numbers?