在SBT子项目中进行编译操作取决于其他子项目的编译,而不将它们添加到类路径中

时间:2016-06-07 12:42:16

标签: scala sbt

出于某些原因,我想要编译子项目a需要编译b b出现在a的类路径中。相反,a类将通过动态加载来访问(是的,这通常是一个坏主意,但这是一个要求)。此问题之前曾被问过以前的SBT版本,例如: How to depend on other tasks and do your code in SBT 0.10?。 我试过了

(compile in (a, Compile)) <<= (compile in (b, Compile), compile in (a, Compile)) {
  (_, out) => out
}

(基于上述答案)和

(compile in (a, Compile)) := {
  (compile in (b, Compile)).value
  (compile in (a, Compile)).value
}

似乎在SBT 0.13.9中都不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用dependsOn运算符覆盖模块compile设置中的默认a行为。

lazy val a = Project(...)
    .settings(compile in Compile <<= compile in Compile dependsOn (compile in Compile in b))