我们将 SBT 与 sbt-git 结合使用,从 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”可以解决问题,但在其他情况下会完全删除限定符。
最佳答案
如果在构建期间 Git 工作副本中有未提交的更改,sbt-git 将附加一个额外的限定符。
默认情况下,此限定符设置为“SNAPSHOT”。可以通过 uncommittedSignifier
设置更改它,例如:
git.uncommittedSignifier := Some("DIRTY")
关于git - 使用 sbt-git 构建包导致 "SNAPSHOT-SNAPSHOT"版本限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589049/