【问题标题】:How to automatically increment version number from my sbt and uploaded to git如何从我的 sbt 自动增加版本号并上传到 git
【发布时间】:2019-05-14 12:43:23
【问题描述】:

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

【问题讨论】:

    标签: git scala sbt


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您可以使用sbt-release 插件。

      步骤

      1. 在项目的指定位置 (./project/plugins.sbt) 创建一个plugins.sbt 文件。
      2. plugins.sbt文件中添加最新的addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.13")插件。
      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
      )
      
      1. 在项目的根目录中创建一个version.sbt 文件。
      2. 将此version in ThisBuild := "1.0.0-SNAPSHOT" 添加到version.sbt 文件中。
      3. 最后你可以运行/使用以下命令(sbt release or sbt 'release with-defaults'

      注意:

      • 我在ReleaseStep 中添加了releaseStepTask(publish in Docker),以便在您指定的存储库(例如Nexus)中自动构建/推送docker 映像。
      • 所以要使用这个releaseStepTask(publish in Docker) 步骤,您需要在plugins.sbt 文件中添加一个sbt-native-packager(addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.7.6"))。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多