使用sbt-git构建包会产生“SNAPSHOT-SNAPSHOT”版本限定符

时间:2016-09-20 08:21:48

标签: git sbt version

我们正在使用带有sbt-git的SBT从Git版本派生我们构建的版本。具体来说,我们使用git describe的输出作为版本号,并在未标记当前版本时附加“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-SNAPSHOT-SNAPSHOT”。

我找不到明显的理由。从gitTagToVersionNumber中删除“-SNAPSHOT”可以解决问题,但在其他情况下会完全删除限定符。

1 个答案:

答案 0 :(得分:5)

当构建过程中Git工作副本中存在未经修改的更改时,sbt-git将附加一个限定符。

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

git.uncommittedSignifier := Some("DIRTY")