Я работал с этими документами: https://www.playframework.com/documentation/2.4.x/SBTSubProjects и разделил большой проект в основном и вспомогательном модулях.Play Framework [2.4.x] Работа с дополнительными модулями
Приблизительно 7000 ошибок компилятора, много кофеина и целого «вау - хочу, чтобы я знал это раньше», позже у меня есть проект, который работает еще раз с его новой модульной компоновкой.
Теперь я хочу создать второй подмодуль.
Назовем основной модуль ROOT, и мы можем подмодуль A ModA и подмодуль B ModB.
ROOT будет зависеть от Moda и MODB
Moda не зависит от ничего
MODB будет зависеть от Moda
Будет ли это более изящным (читай: ремонтопригодны) иметь Moda и MODB быть братья или сестры, или это элегантно, чтобы иметь цепочку подмодулей, указывающую поток наследования?
ROOT -> MODB -> Moda
Это позволит получить беспорядок (МЭО), если (когда) мы добавим MODC и Modd и т.д., так что я надеюсь, что мы можем сделать это с помощью модели братьев и сестер.
Большая часть магии появляется здесь, я считаю,:
lazy val moduleA = (project in file("modules/ModA")).enablePlugins(PlayScala)
lazy val ROOT = (project in file("."))
.enablePlugins(PlayScala).dependsOn(ModA).aggregate(ModA)
Я полагаю, что я могу приковать dependsOn
и aggregate
вызовы.
lazy val moduleA = (project in file("modules/ModA")).enablePlugins(PlayScala)
lazy val moduleB = (project in file("modules/ModB")).enablePlugins(PlayScala)
lazy val ROOT = (project in file("."))
.enablePlugins(PlayScala).dependsOn(ModA)
.aggregate(ModA).dependsOn(ModB).aggregate(ModB)
Использование модели братьев и сестер, как будет объявлена зависимость ModB от ModA? (Предполагается, что в build.sbt из MODB)
lazy val moduleA = (project in file("modules/ModA")).enablePlugins(PlayScala)
lazy val ROOT = (project in file("."))
.enablePlugins(PlayScala).dependsOn(ModA).aggregate(ModA)