出于某些原因,我想要编译子项目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中都不起作用。
答案 0 :(得分:1)
您可以使用dependsOn
运算符覆盖模块compile
设置中的默认a
行为。
lazy val a = Project(...)
.settings(compile in Compile <<= compile in Compile dependsOn (compile in Compile in b))