出于某些原因,我想编译子项目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。
最佳答案
您可以使用 dependsOn
运算符来覆盖模块 a
设置中的默认 compile
行为。
lazy val a = Project(...)
.settings(compile in Compile <<= compile in Compile dependsOn (compile in Compile in b))
关于scala - 使 SBT 子项目中的编译操作依赖于其他子项目的编译而不将它们添加到类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679708/