2016-09-20 67 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")