我有一个 SBT 项目,特别是 Play Framework 2.1 项目,它在配置中指定了许多子项目。编译时依赖项似乎工作正常,但“清理”似乎只清理当前选定的项目,不包括其依赖项。有什么方法可以清理所选项目及其依赖的子项目?
问问题
2321 次
1 回答
10
如果你的主项目聚合了主题,像这样:
lazy val root = Project("name", file("."))
.aggregate(module1, module2, macros)
那么在这个根项目上调用的任何命令都将为所有子项目执行。如果您inspect clean
在您的 sbt 会话中调用命令,您将在相关部分下看到与此清洁相关的所有子项目
在评论的旁注中
aggregate
并且dependsOn
是用于不同目的的不同命令。聚合的目的是运行在根项目上调用的命令。在我的示例中,通过在我的根项目上调用test
命令,该命令也将针对module1
module2
and执行macros
。如果您想使用以下设置关闭此类行为:
aggregate in test := false
聚合项目独立于其中的代码。它通常用于根项目,例如不是test
在每个项目上调用,而是在根上调用它。请记住,在聚合的情况下,命令将并行执行。
而dependsOn意味着你的项目将依赖于其他项目的代码。在这种情况下,SBT 将按顺序执行命令,以便compile
您的根项目,其中dependsOn
一些模块,它应该首先编译这些模块,即根项目。
于 2013-08-07T06:53:26.097 回答