sbt - 独立的构建定义

时间:2014-06-27 12:29:20

标签: scala sbt

问题简介

我有一个项目使用 Akka Spray ,逻辑上由两部分AB组成。在最终版本中,它们将一起工作,交换消息等。目前我已经实现了部分B和整个部分A的一些功能。如果我运行sbt compile并不奇怪,我会收到仅引用部分B的错误。

问题

是否可以为sbt定义一些仅编译仅构建部分A的模块的规则?

2 个答案:

答案 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/compileB/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(...)过滤器中提到的所有项目(您可能有多个)。