出于某些原因,我想编译一个子项目a
需要编译b
而不b
出现在a
的类路径中。相反,a
类将通过动态加载来访问它们(是的,这通常是一个坏主意,但这是一项要求)。这个问题之前在以前的 SBT 版本中被问过,例如,如何依赖其他任务并在 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 中似乎都不起作用。
您可以使用
dependsOn
运算符覆盖模块a
设置中的默认compile
行为。
lazy val a = Project(...)
.settings(compile in Compile <<= compile in Compile dependsOn (compile in Compile in b))