如何根据特定命令 运行 执行任务?
How to run a task on particular command?
我正在使用 https://github.com/sbt/sbt-native-packager and https://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
命令执行。
如何存档?
由于在执行任务之前需要修改状态,请尝试像这样定义自定义命令:
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
执行命令。
我正在使用 https://github.com/sbt/sbt-native-packager and https://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
命令执行。
如何存档?
由于在执行任务之前需要修改状态,请尝试像这样定义自定义命令:
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
执行命令。