2016-09-20 39 views
1

我们使用SBT与sbt-git从Git修订版派生我们的版本。具体来说,我们正在使用的输出git describe版本号和附加在当前版本没有标记的“快照”预选赛:使用sbt-git编译包导致“SNAPSHOT-SNAPSHOT”版本限定符

val versionRegex = "v([0-9]+.[0-9]+.[0-9]+)-?(.*)?".r 

git.useGitDescribe := true 
git.baseVersion := "0.0.0" 
git.gitTagToVersionNumber := { 
    case versionRegex(v, "") => Some(v) 
    case versionRegex(v, "SNAPSHOT") => Some(s"$v-SNAPSHOT") 
    case versionRegex(v, s) => Some(s"$v-$s-SNAPSHOT") 
    case _ => None 
} 

然而,这有时会导致预选赛被复制,即版本号,如“ 0.0.0-12345678-快照快照”。

我可以找到没有明显的原因。从gitTagToVersionNumber中删除“-SNAPSHOT”可解决此问题,但在其他情况下完全删除限定符。

回答

2

当构建期间Git工作副本中存在未完成的更改时,sbt-git将附加一个限定符。

默认情况下,此限定符设置为“SNAPSHOT”。可以通过uncommittedSignifier设置来更改它,例如:

git.uncommittedSignifier := Some("DIRTY")