问题简介:
我有一个项目使用 Akka 和 Spray ,逻辑上由两部分A
和B
组成。在最终版本中,它们将一起工作,交换消息等。目前我已经实现了部分B
和整个部分A
的一些功能。如果我运行sbt compile
并不奇怪,我会收到仅引用部分B
的错误。
问题:
是否可以为sbt
定义一些仅编译仅构建部分A
的模块的规则?
答案 0 :(得分:0)
$ cd /path/to/project
$ sbt
> projects
[info] In file:/path/to/project
[info] * root
[info] A
[info] B
> project A
[info] Set current project to A (in build file:/path/to/project/)
> projects
[info] In file:/path/to/project
[info] root
[info] * A
[info] B
> compile
答案 1 :(得分:0)
如果要为某个项目运行任务,可以使用以下语法<project>/compile
。在您的示例中,我们说A/compile
或B/compile
。
或者,您可以通过创建自己的任务来自动完成整个过程。
build.sbt
val projectA, projectB = project
val compileA = taskKey[Unit]("Compiles project A")
val partA = ScopeFilter( inProjects(projectA), inConfigurations(Compile) )
compileA := compile.all( partA ).value
现在运行compileA
将编译inProjects(...)
过滤器中提到的所有项目(您可能有多个)。