如何防止子项目的类路径包含在顶级项目的类路径中?

时间:2011-08-15 06:21:40

标签: sbt

我继承了一个包含许多子项目的项目。在开发期间,您可以通过在顶级项目上调用run来启动实际产品。但是,对于运行产品,您不需要 要包含所有子项目的类路径。事实上,一些子项目有一个类路径应该绝对不包含在顶级runClasspath中。你怎么能这样做?如何从顶级类路径中明确排除子项目的类路径?

1 个答案:

答案 0 :(得分:0)

我先回答我自己的问题。我觉得这不是正确的方法,但似乎有效。假设您定义了一个子项目,如下所示:

lazy val fooSub = project(....)

...然后似乎可以通过将fooSub的类路径添加到顶级项目的定义中来阻止override def topologicalSort = super.topologicalSort.filter(_ != fooSub) 的类路径包含在其中:

fullClasspath

这很有效,因为topologicalSort似乎使用{{1}}来查找所有子项目,将其类路径包含在自己的类路径中。虽然我的口味似乎有点过于激进。很难说它是否在别的地方破了。