是否有 SBT 任务来增加项目的版本?
给出如下所示的初始配置build.sbt
name := 'My Project'
organization := 'org.example'
version := '0.1.0'
以及 major.minor.patch 的版本控制命名法,我希望有一个像
这样的 SBT 任务> incrementVersionPatch
这将导致
0.1.1
的版本。
(理想情况下还有相应的
incrementVersionMinor
和 incrementVersionMajor
。)
我觉得这一定已经存在,但找不到方法来做到这一点。
我认为您需要的是 sbt-release 插件,该插件 “提供了可以添加到项目中的可自定义发布流程。” 和 “设置
release-version-file
,默认情况下设置为 file("version.sbt")
并且指向$PROJECT_ROOT/version.sbt
”。
正如@jacek-laskowski 回答的那样,sbt-release 插件可以满足您的需求。它可以做更多的事情,事实上它被配置为默认执行整个发布过程。但是,您可以使用 SBT 覆盖发布过程,以便它仅增加版本号:
# Minor bump
sbt '
; set releaseProcess := Seq(ReleaseTransformations.inquireVersions, ReleaseTransformations.setNextVersion)
; set releaseVersionBump := sbtrelease.Version.Bump.Minor
; release with-defaults
'
# Major bump
sbt '
; set releaseProcess := Seq(ReleaseTransformations.inquireVersions, ReleaseTransformations.setNextVersion)
; set releaseVersionBump := sbtrelease.Version.Bump.Major
; release with-defaults
'
注意,为了使
sbt-release
正常工作,版本必须设置在单个文件 version.sbt
中,并带有 ThisBuild / version := "0.1.0"
(或任何其他版本号)。