У меня многопроектная 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' необходимо вызвать метод' bar', передав один параметр типа 'foo'. Я перемещу их (как класс, так и парам) в другой модуль под названием «core» или «root» и сделаю это зависимым от обоих модулей. –