如何在特定命令上运行任务?
Posted
技术标签:
【中文标题】如何在特定命令上运行任务?【英文标题】:How to run a task on particular command? 【发布时间】:2019-10-27 17:33:06 【问题描述】:我正在使用https://github.com/sbt/sbt-native-packager 和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
命令执行。
如何存档?
【问题讨论】:
【参考方案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
执行命令。
【讨论】:
以上是关于如何在特定命令上运行任务?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建将使用特定配置文件执行 bootRun 的 gradle 任务?
如何在特定设备上运行命令“ionic run android”?
如何使用 ScheduledExecutorService 每天在特定时间运行特定任务?