我一直试图找到一种方法,以确保版本反映了当前的git指数并没有找到一种方法,这样做呢,比如:如何更新版本以反映git的索引更改?
lazy val root = (project in file(".")).enablePlugins(GitPlugin)
root.settings(
isSnapshot in ThisBuild <<= git.gitUncommittedChanges in ThisBuild,
version in ThisBuild <<= (git.gitDescribedVersion in ThisBuild, isSnapshot in ThisBuild) { (described, isSnapshot) =>
described.map(tag => if (isSnapshot) s"$tag-SNAPSHOT" else tag).get
},
shellPrompt := { state => {
val (describe, snapshot) = GitKeys.gitReader.value.withGit(git => (git.describedVersion.get, git.hasUncommittedChanges))
val newVersion = s"$describe${if (snapshot) "-SNAPSHOT" else ""}"
if (newVersion != version.value) {
s"${scala.Console.RED}*** Version out of date ($newVersion vs ${version.value}), reload.\n${scala.Console.RESET}> "
} else "> "
}}
)
虽然这将警告用户,如果版本不再反映Git中的内容并请求重新加载,如果版本会在此更改中自动更新,则会很不错...
这可能吗?
你使用什么版本的sbt?你可能想在0.13.8中使用'enablePlugins(GitPlugin)'和其他好东西。 –