如何从我的 sbt 自动增加版本号并上传到 git

Nas*_*neh 5 git scala sbt

如何从我的build.sbt文件中增加项目版本号,以便在编译时自动上传到 git?

Kes*_*dhi 7

您可以使用sbt-release插件。

脚步

  1. 在项目中的plugins.sbt指定位置 ( )创建一个文件。./project/plugins.sbt
  2. addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.13")在文件中添加最新的插件plugins.sbt
  3. 在文件中添加以下内容build.sbt
import ReleaseTransformations._

releaseVersionBump := sbtrelease.Version.Bump.Next
releaseVersionFile := baseDirectory.value / "version.sbt"

publishConfiguration := publishConfiguration.value.withOverwrite(true)
releaseIgnoreUntrackedFiles := true

releaseProcess := Seq[ReleaseStep](
  checkSnapshotDependencies,              // : ReleaseStep
  inquireVersions,                        // : ReleaseStep
  runClean,                               // : ReleaseStep
  runTest,                                // : ReleaseStep
  setReleaseVersion,                      // : ReleaseStep
  commitReleaseVersion,                   // : ReleaseStep, performs the initial git checks
  tagRelease,                             // : ReleaseStep
  publishArtifacts,                       // : ReleaseStep, checks whether `publishTo` is properly set up
  releaseStepTask(publish in Docker),     // : ReleaseStep, publish the docker image in your specified repository(e.i. Nexus)
  setNextVersion,                         // : ReleaseStep
  commitNextVersion,                      // : ReleaseStep
  pushChanges                             // : ReleaseStep, also checks that an upstream branch is properly configured
)
Run Code Online (Sandbox Code Playgroud)
  1. version.sbt在项目的根目录中创建一个文件。
  2. 将其添加到文件version in ThisBuild := "1.0.0-SNAPSHOT"version.sbt
  3. 最后你可以运行/使用以下命令(sbt releasesbt 'release with-defaults'

笔记:

  • 我已经添加了在您指定的存储库(ei Nexus)中自动构建/推送 docker 映像的releaseStepTask(publish in Docker)功能ReleaseStep
  • 因此,要使用此releaseStepTask(publish in Docker)步骤,您需要在文件中添加一个sbt-native-packager ( addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.7.6")) plugins.sbt


Mik*_*len 5

sbt-release插件将为您完成所有这些。

如果您从命令行发出命令sbt release,此插件将删除-SNAPSHOT后缀、标记、提交并将更改推送到您的存储库、构建、测试和发布工件,然后更新版本版本号(-SNAPSHOT再次添加后缀),再次提交更改。

如果需要,以上所有步骤都可以自定义。