【问题标题】:How to run a task on particular command?如何在特定命令上运行任务?
【发布时间】:2019-10-27 17:33:06
【问题描述】:

我正在使用https://github.com/sbt/sbt-native-packagerhttps://github.com/sbt/sbt-git 插件。

当我运行以下命令时:

    # 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命令执行。 如何存档?

【问题讨论】:

    标签: scala sbt sbt-native-packager sbt-plugin sbt-git


    【解决方案1】:

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

    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 执行命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-31
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多