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

Sbt 如何防止子项目的类路径包含在顶级项目的类路径中?,sbt,Sbt,我继承了一个有许多子项目的项目。在开发过程中,您可以通过调用顶级项目上的run来启动实际的产品。但是,为了运行产品,不需要包含所有子项目的类路径。事实上,有些子项目的类路径绝对不应该包含在顶级运行类路径中。你怎么能做到?如何从顶级类路径显式排除子项目的类路径 我先回答我自己的问题。我觉得这不是正确的方法,但似乎有效。假设您定义了如下子项目: lazy val fooSub = project(....) 。。。然后,通过将以下内容添加到顶级项目的定义中,似乎可以防止将fooSub的类路径包括在

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

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

lazy val fooSub = project(....)
。。。然后,通过将以下内容添加到顶级项目的定义中,似乎可以防止将
fooSub
的类路径包括在顶级类路径中:

override def topologicalSort = super.topologicalSort.filter(_ != fooSub)
这是可行的,因为
fullClasspath
似乎使用
topologicalSort
查找所有子项目,将它们的类路径包含到自己的类路径中。但对我的口味来说,它似乎有点太过激进了。很难说它是不是在别的地方坏了