是否可以使用sbt-release指定git标签名称的git方案?
可以指定标记提交消息和注释。根据自述文件:
releaseTagComment := s"Releasing ${(version in ThisBuild).value}",
releaseCommitMessage := s"Setting version to ${(version in ThisBuild).value}",
但我一直无法找到更改实际标记文本默认值的方法,该默认设置为s“v $ {releaseVersion}”。
我想在标记字符串中指定项目名称,例如“myproject-v0.1.1”
通过“标记字符串”澄清,我指的是您在git tag -l
我们在同一个git存储库中有多个项目,并且它们具有相似的版本号,因此像“v0.1.0”这样的标签是不明确的。
答案 0 :(得分:3)
有一个sbt-release配置值releaseTagName
,您可以修改它以自定义如何生成发布标记。
这对我有用:
lazy val root = (project in file(".")).
settings(
.... other settings ....
releaseTagName := s"version-${if (releaseUseGlobalVersion.value) (version in ThisBuild).value else version.value}",
....
)
如果其他一切都失败了,您还可以自定义发布步骤,并编写自己的tagRelease步骤。
答案 1 :(得分:0)
您可以根据需要使用自定义标签。这是我遵循的方法。
步骤
converted_price
文件中添加以下给定的内容。在这里,如果分支是 build.sbt
那么我使用 master
像:semantic versioning
但是如果分支名称不是 1.0.1
那么我使用自定义标签({{ 1}}).master
branch-name + git-commitid + timestamp
文件并添加 import scala.sys.process.Process
lazy val root = (project in file(".")).enablePlugins(JavaAppPackaging)
name := "your-project-name"
scalaVersion := "2.12.11"
val branch = Process("git rev-parse --abbrev-ref HEAD").lineStream.head
version := {
branch match {
case "master" => (version in ThisBuild).value
case _ => {
val commit = Process("git rev-parse HEAD").lineStream.head
val time = Process("git log -1 --format=%ct").lineStream.head
branch +"-"+ commit +"-"+ time
}
}
}
。