Моя идея состоит в публикации всех общих зависимостей для репозитория Maven.
Однако я предпочитаю многомодульный механизм проекта. Ниже приведен пример (Play):
lazy val commonSettings = Seq(
version := "1.0",
organization := "abc",
scalaVersion := "2.11.6",
resolvers ++= Seq(
...
),
...
)
lazy val root = (project in file(".")).enablePlugins(PlayScala)
.settings(commonSettings: _*)
.aggregate(core, dao, models)
.settings(
name := "root",
version := "1.0",
libraryDependencies ++= Seq(
...
)
)
lazy val core = (project in file("./modules/core")) dependsOn dao settings(commonSettings: _*) settings(
name := "core",
libraryDependencies ++= Seq(
...
)
)
lazy val dao = (project in file("./modules/dao")) dependsOn models settings(commonSettings: _*) settings(
name := "dao",
libraryDependencies ++= Seq(
...
)
)
lazy val models = (project in file("./modules/models")) settings(commonSettings: _*) settings(
name:= "models",
libraryDependencies ++= Seq(
...
)
)
Плагин sbt не режет его, потому что вам нужно управлять версией плагина в каждой сборке sbt всякий раз, когда вы меняете или обновляете общие версии. Бьюсь об заклад, вы забудете это сделать. Это эквивалентно обновлению версий вручную, а не их совместному использованию. –