You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SBT中如何在执行runner项目的run任务前先执行core项目的packageBin任务

在SBT中让runner的run任务自动先执行core的packageBin任务

这事儿其实在SBT里很容易搞定,只需要给runner项目的run任务添加一个任务依赖,指定它要先完成core项目的packageBin任务就行。

假设你的多模块项目在build.sbt里是这样定义的,只需要在runner的配置里加上关键的依赖设置:

// 定义core项目
lazy val core = (project in file("core"))
  .settings(
    // 这里放core项目的其他配置,比如Scala版本、依赖库等
  )

// 定义runner项目,并配置任务依赖
lazy val runner = (project in file("runner"))
  .dependsOn(core) // 如果runner本来就依赖core的编译产物,这个配置大概率已经存在了
  .settings(
    // 核心配置:让runner的run任务依赖core的packageBin任务
    run := (run dependsOn core.packageBin).value
  )

配置完成后,当你执行sbt runner/run命令时,SBT会自动先执行core/packageBin任务,等它完成之后才会启动runner的run任务。

如果你的runner项目已经有针对run任务的其他配置(比如指定mainClass),只需要把run的定义改成带依赖的版本就好,比如:

run := (run dependsOn core.packageBin).value,
mainClass := Some("com.yourcompany.RunnerMain")

内容的提问来源于stack exchange,提问作者Ilya Kirillov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:18:27