使 SBT 子项目任务依赖于另一个子项目任务

Posted

技术标签:

【中文标题】使 SBT 子项目任务依赖于另一个子项目任务【英文标题】:Make a SBT subproject task depends on another subproject task 【发布时间】:2020-05-15 15:51:04 【问题描述】:

我有 2 个 sbt 子项目,一个是 CLI,一个是 sbt 插件。

sbt 插件将在执行时尝试下载 CLI。我们这里有一个隐式依赖。 sbt 插件的测试(通过 sbt-scripted 插件实现)需要在本地发布 CLI。

我通常运行sbt +cli/publishLocal +plugin/scripted

我怎样才能在 sbt 中明确地显示此任务依赖关系,以便每次我运行 plugin/scripted 时它首先运行 cli/publishLocal

(仅供参考的项目源在这里https://github.com/thibaultdelor/CliAppSbtPlugin)

【问题讨论】:

【参考方案1】:

您是否考虑过以下问题?

plugin/scripted := 
   val dummy0 = (cli/publishLocal).value
   val dummy1 = (plugin/scripted).value
   dummy1

【讨论】:

以上是关于使 SBT 子项目任务依赖于另一个子项目任务的主要内容,如果未能解决你的问题,请参考以下文章

使 Sonar Runner Gradle 任务依赖于我的一项任务

SBT:多构建依赖/聚合项目中的覆盖设置

SBT - 如何使 InputTask 依赖于一个任务并最终完成另一个

如何从特定项目的交叉构建的sbt多项目中删除scala版本

如何使一个 Maven 模块依赖于另一个?

在SBT构建中的多项目构建中的自定义任务