如何使用sbt-release插件实现独立的多模块版本控制

Mar*_*rek 2 sbt sbt-release

我有两个子项目和顶级项目,他们同意这些项目.我可以成功发布所有这些版本,但只更改了顶级项目上的版本,并且子目录以其目录中定义的版本发布,遗憾的是在发布期间不会更改.

Root
|
 -SubA
|   |- version.sbt -> version in SubA := "0.0.1-SNAPSHOT"
|
 -SubB
|   |- version.sbt -> version in SubB := "0.0.4-SNAPSHOT"
|- version.sbt -> version in ThisBuild := "0.1.0-SNAPSHOT"
Run Code Online (Sandbox Code Playgroud)

发布后我想:

  • Root发布为0.1.0(虽然我根本不在乎root)
  • SubA以0.0.1发布
  • SubB发布为0.0.4

并且每个版本例如在SubA/version.sbt- > 0.0.2-SNAPSHOT中递增

我该如何使用sbt 0.13和sbt-release插件?

小智 6

您需要覆盖子模块的每个build.sbt中的version.sbt文件的默认位置:

import ReleaseKeys._

organization := "com.organization"

name := "moduleName"

version := (version in ThisBuild).value

scalaVersion := "2.11.6"

releaseSettings

versionFile := file(name.value + "/version.sbt")
Run Code Online (Sandbox Code Playgroud)

默认情况下,version.sbt位于sbt-release的ROOT文件夹中.