我有一个多项目SBT构建。有一个没有任何东西的根,它只是聚合所有子项目。SBT子项目取决于彼此
lazy val aaRoot = (project in file(".")).settings(commonSettings: _*).settings(
libraryDependencies ++= appDependencies
).enablePlugins(PlayJava).aggregate(foo, bar)
lazy val foo: Project = (project in file("modules/foo")).settings(commonSettings: _*).settings(
libraryDependencies ++= appDependencies
).enablePlugins(PlayJava).dependsOn(bar)
lazy val bar = (project in file("modules/bar")).settings(commonSettings: _*).settings(
libraryDependencies ++= appDependencies
).enablePlugins(PlayJava).dependsOn(foo)
这显然是在这里循环依赖(foo
取决于bar
和bar
取决于foo
)。什么是可能的方法来避免这种依赖关系,或者是否有处理这种方式的方法。
除了入口点,它们大多是独立的。像'foo'需要通过传递'foo'类型的一个参数来调用'bar'的方法。我将它们(类和参数)移动到另一个名为'core'或'root'的模块,并将其作为依赖于这两个模块。 –