我想设置依赖于 git 分支的项目版本,在开发版本中有一个当前的主要版本 + 当前日期和生产中的主要编号。所以我做了一个计算我需要的版本的任务:
val projectVersion = taskKey[String]("Compute project version")
projectVersion := {
val v = version.value // get Major version number
val date = new SimpleDateFormat("yyyyMMdd").format(new Date)
if (isDev.value) v + "-" + date
else v
}
isDev
是另一个返回Task[Boolean]
指示这是非主分支的任务:
branch := Process("git rev-parse --abbrev-ref HEAD").lines.headOption
isDev := branch.value != "master"
然后我尝试将计算版本设置为version
键:
version := Versioning.projectVersion.value
但这是被禁止的:
BuildSettings.scala:15: A setting cannot depend on a task
这样做的正确方法是什么?