Scala 如何在特定命令上运行任务?

Scala 如何在特定命令上运行任务?,scala,sbt,sbt-native-packager,sbt-plugin,sbt-git,Scala,Sbt,Sbt Native Packager,Sbt Plugin,Sbt Git,我正在使用和插件 当我运行以下命令时: # docker image sbt docker:publishLocal 我想执行这项任务: git.useGitDescribe := true git.formattedShaVersion := git.gitHeadCommit.value map { _ => git.gitCurrentTags.value.head } Docker / dockerAlias := D

我正在使用和插件

当我运行以下命令时:

    # docker image
    sbt docker:publishLocal
我想执行这项任务:

    git.useGitDescribe := true
    git.formattedShaVersion := git.gitHeadCommit.value map { _ =>
      git.gitCurrentTags.value.head
    }

    Docker / dockerAlias := DockerAlias(None, Some("zerocoder"), (packageName in Docker).value, git.gitDescribedVersion.value)
上述任务只能由
docker:publishLocal
命令执行。
如何存档

由于在执行任务之前需要修改状态,请尝试定义如下自定义命令:

commands += Command.command("publishLocalWithGit") { state =>
  """set git.useGitDescribe := true""" ::
  """set git.formattedShaVersion := git.gitHeadCommit.value map { _ => git.gitCurrentTags.value.head }""" ::
  """set Docker / dockerAlias := DockerAlias(None, Some("zerocoder"), (packageName in Docker).value, git.gitDescribedVersion.value)""" ::
  """docker:publishLocal""" ::  state
}
使用
sbt publishLocalWithGit
执行命令