Git 版本控制不会自动增加

Git 版本控制不会自动增加,git,scala,sbt,sbt-git,Git,Scala,Sbt,Sbt Git,我使用它来获得自动版本控制的好处,如Git版本控制一节所述 我的build.sbt文件如下所示: version := "0.1.0" scalaVersion := "2.12.8" scalacOptions ++= Seq( "-encoding", "UTF-8", // source files are in UTF-8 "-deprecation", // warn about use of deprecated APIs "-unchecked", // warn

我使用它来获得自动版本控制的好处,如Git版本控制一节所述

我的build.sbt文件如下所示:

version := "0.1.0"

scalaVersion := "2.12.8"

scalacOptions ++= Seq(
  "-encoding", "UTF-8", // source files are in UTF-8
  "-deprecation", // warn about use of deprecated APIs
  "-unchecked", // warn about unchecked type parameters
  "-feature", // warn about misused language features
  "-language:higherKinds", // allow higher kinded types without `import scala.language.higherKinds`
  "-Xlint", // enable handy linter warnings
  "-Xfatal-warnings", // turn compiler warnings into errors
  "-Ypartial-unification" // allow the compiler to unify type constructors of different arities
)

scalacOptions in(Compile, console) ~= {
  _.filterNot(Set("-Xlint"))
}

libraryDependencies ++= Seq(
  "org.typelevel" %% "cats-core" % "1.6.0",
  "ch.qos.logback" % "logback-classic" % "1.2.3",
  "com.typesafe.scala-logging" %% "scala-logging" % "3.9.2"
)

libraryDependencies ++= Seq(
  "org.scalacheck" %% "scalacheck" % "1.14.0" % "test",
  "org.scalactic" %% "scalactic" % "3.0.6" % "test",
  "org.scalatest" %% "scalatest" % "3.0.6" % "test"
)

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-slf4j" % "2.5.22",
  "ch.qos.logback" % "logback-classic" % "1.2.3"
)

libraryDependencies += "com.dimafeng" %% "testcontainers-scala" % "0.25.0" % "test"


enablePlugins(JavaServerAppPackaging)
enablePlugins(DockerPlugin)
enablePlugins(GitVersioning)
dockerExposedPorts := Seq(8080)
git.formattedShaVersion := git.gitHeadCommit.value map { sha =>
  s"$sha".substring(0, 7)
}

dockerUpdateLatest := true
dockerAlias := DockerAlias(None, Some("zerocoder"), (packageName in Docker).value, git.gitDescribedVersion.value)  
提交后,它不会自动从版本0.1.0增加到版本0.2.0

我做错了什么?

简单的回答是:

从build.sbt文件中删除/省略显式设置版本,即此语句版本:=0.1.0 创建一个git标记,以设置以v为前缀的所需版本,例如,请参见 然后,您可以通过运行以下命令查看插件设置的版本:

>sbt version
// Displays
// [info] 0.2.0
这里有一点解释:

因此,SBTGIT的工作方式是,它为您设置sbt构建的版本,即运行sbt版本后得到的版本。要做到这一点,需要遵循以下几点,以下是第一点:

查看版本属性将默认设置为project.version,并检查sys.props以查看其是否有值。如果是,就用它。 否则,查看项目标记。第一个匹配gitTagToVersionNumberSetting的用于分配版本。默认设置是查找以v和数字开头的标记,并使用该数字作为版本。如果有多个版本标记,它将选择最高版本。 因此,在您的情况下,因为您在build.sbt中将项目版本显式设置为0.1.0,所以运行sbt版本的结果是0.1.0。即使在做了一些提交之后,sbt版本的值仍然是0.1.0,因为只要在build.sbt中设置了版本,就会应用规则。请注意,插件不会更改该文件中设置的值,它只在定义时使用它

如果要删除该行版本:=0.1.0,那么规则2将适用,简单地说,它查找标记并返回第一个匹配gitTagToVersionNumberSetting的字符串,默认情况下,该字符串以v开头,后跟一个数字

因此,基本上,要使用插件将项目设置为0.2.0版,您必须在提交v0.2.0的头上创建一个标记,例如,运行git tag-a v0.2.0-m my version 0.2.0

当您开发项目时,会添加多个提交,直到您的版本0.3.0或0.2.1,一旦你在最新的提交上创建了相应的标记,比如说标记v0.3.0,那么插件就会应用规则2把它设置为你的项目版本,你可以通过运行sbt版本看到它,如前所述

这是一个流程,您基本上可以使用它使您的项目版本跟随您的git标签版本。

简短的回答是:

从build.sbt文件中删除/省略显式设置版本,即此语句版本:=0.1.0 创建一个git标记,以设置以v为前缀的所需版本,例如,请参见 然后,您可以通过运行以下命令查看插件设置的版本:

>sbt version
// Displays
// [info] 0.2.0
这里有一点解释:

因此,SBTGIT的工作方式是,它为您设置sbt构建的版本,即运行sbt版本后得到的版本。要做到这一点,需要遵循以下几点,以下是第一点:

查看版本属性将默认设置为project.version,并检查sys.props以查看其是否有值。如果是,就用它。 否则,查看项目标记。第一个匹配gitTagToVersionNumberSetting的用于分配版本。默认设置是查找以v和数字开头的标记,并使用该数字作为版本。如果有多个版本标记,它将选择最高版本。 因此,在您的情况下,因为您在build.sbt中将项目版本显式设置为0.1.0,所以运行sbt版本的结果是0.1.0。即使在做了一些提交之后,sbt版本的值仍然是0.1.0,因为只要在build.sbt中设置了版本,就会应用规则。请注意,插件不会更改该文件中设置的值,它只在定义时使用它

如果要删除该行版本:=0.1.0,那么规则2将适用,简单地说,它查找标记并返回第一个匹配gitTagToVersionNumberSetting的字符串,默认情况下,该字符串以v开头,后跟一个数字

因此,基本上,要使用插件将项目设置为0.2.0版,您必须在提交v0.2.0的头上创建一个标记,例如,运行git tag-a v0.2.0-m my version 0.2.0

当您开发项目时,会添加多个提交,直到您的版本0.3.0或0.2.1,一旦你在最新的提交上创建了相应的标记,比如说标记v0.3.0,那么插件就会应用规则2把它设置为你的项目版本,你可以通过运行sbt版本看到它,如前所述


这是一个基本上可以用来让项目版本跟随git标签版本的流程
如果插件更新build.sbt中指定的版本,则根本没有指定版本。相反,插件会在每次构建开始时通过查看git状态动态计算版本。我是否正确理解它,当我提交它时,它会自动计算版本?我的意思是,例如,当前标记是v0.2.0。然后我做一些代码更改,提交它,然后我期望的是,标记会自动增加到0.3.0。@zero_编码,基本上是由您在提交的基础上创建一个标记,插件将使用它来设置您的项目的版本很棒的东西:!因此,这里的想法是,没有插件更新build.sbt中指定的版本,而是根本没有指定版本。相反,插件会在每次构建开始时通过查看git状态动态计算版本。我是否正确理解它,当我提交它时,它会自动计算版本?我的意思是,例如,当前标记是v0.2.0。然后我做一些代码更改,提交它,然后我期望的是,标记会自动增加到0.3.0。@zero_编码,基本上是由您在提交的基础上创建一个标记,插件将使用它来设置您的项目的版本很棒的东西:!