sbt マルチプロジェクトで run タスクの前に別プロジェクトのタスクを実行する

2019/09/27   #Scala  #sbt 
このエントリーをはてなブックマークに追加

sbt をマルチプロジェクトで構成していて、
アプリケーションプロジェクトの run の前に別プロジェクトで管理している sbt-liquibase の update タスクを実行したい、
みたいなシチュエーション。

lazy val apps = (project in file("modules/apps"))
  .settings(
    commonSettings,
    name := "apps",
    (run in Compile) := (run in Compile).dependsOn(liquibaseUpdate in (dbPrj, Compile)).evaluated,
  )
  .dependsOn(domain, ...)

(run in Compile) := (run in Compile).dependsOn(liquibaseUpdate in (dbPrj, Compile)).evaluated
の部分。
run の前に、dbPrj の liquibaseUpdate タスクを実行する形になる。

参考:
https://stackoverflow.com/a/41190904/2595263