Maven Artifact.getBaseVersion()的用例

Maven Artifact.getBaseVersion()的用例,maven,maven-plugin,Maven,Maven Plugin,除了getVersion()之外,该接口还提供了getBaseVersion()。基本版本在setBaseVersionInternal(字符串)中设置,如下所示: Matcher m = VERSION_FILE_PATTERN.matcher( baseVersion ); if ( m.matches() ) { this.baseVersion = m.group( 1 ) + "-" + SNAPSHOT_VERSION; } else { this.baseVers

除了
getVersion()
之外,该接口还提供了
getBaseVersion()
。基本版本在
setBaseVersionInternal(字符串)
中设置,如下所示:

Matcher m = VERSION_FILE_PATTERN.matcher( baseVersion );

if ( m.matches() )
{
    this.baseVersion = m.group( 1 ) + "-" + SNAPSHOT_VERSION;
}
else
{
    this.baseVersion = baseVersion;
}

我对两个不同版本字符串的语义一无所知。
getBaseVersion()
的返回值何时与
getVersion()
实际不同,原因是什么?

快照有两种类型:唯一和非唯一。后者以
-SNAPSHOT
结尾,在您自己的系统上处理项目时生成。
mvn安装
将使用-SNAPSHOT版本将工件复制到本地存储库


如果您使用来自远程存储库的快照,那么这些工件将被加上时间戳(以时间戳的人性化表示形式结束),这使得它们是唯一的。这与将快照上载到远程存储库的方式有关。

快照有两种类型:唯一和非唯一。后者以
-SNAPSHOT
结尾,在您自己的系统上处理项目时生成。
mvn安装
将使用-SNAPSHOT版本将工件复制到本地存储库


如果您使用来自远程存储库的快照,那么这些工件将被加上时间戳(以时间戳的人性化表示形式结束),这使得它们是唯一的。这与它们上载到远程存储库的方式有关。

谢谢,但是。。为什么
getBaseVersion()
?我假设
getVersion()
可能是一个“未经验证”的版本,包括一个时间戳,而
getBaseVersion()
总是返回POM中的版本字符串?当谈论maven插件时,这取决于它们需要什么。大多数插件对它的独特价值不感兴趣,但是它是否是快照。在这种情况下,应该使用
getBaseVersion()
。在引用实际文件时,您可能需要
getVersion()
。举个例子:看看它是否应该尊重时间戳?可能不是,您只是想知道它是否是同一个快照。谢谢,但是。。为什么
getBaseVersion()
?我假设
getVersion()
可能是一个“未经验证”的版本,包括一个时间戳,而
getBaseVersion()
总是返回POM中的版本字符串?当谈论maven插件时,这取决于它们需要什么。大多数插件对它的独特价值不感兴趣,但是它是否是快照。在这种情况下,应该使用
getBaseVersion()
。在引用实际文件时,您可能需要
getVersion()
。举个例子:看看它是否应该尊重时间戳?可能不是,您只想知道它是否是同一个快照。