我们正在使用带有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”可以解决问题,但在其他情况下会完全删除限定符。
答案 0 :(得分:5)
当构建过程中Git工作副本中存在未经修改的更改时,sbt-git将附加一个限定符。
默认情况下,此限定符设置为“SNAPSHOT”。可以通过uncommittedSignifier
设置更改它,例如:
git.uncommittedSignifier := Some("DIRTY")