sbt share dependencies across projects
我正在寻找一种跨项目(但不是子项目)共享配置(例如依赖项)的方法。
我想知道是否可以在一些 sbt 项目中集中依赖关系并从其他几个 sbt 项目中获取它们。
如果没有简单的方法,我是否应该考虑开发一个插件来暴露这些依赖关系?
也许开发一个包含此设置的插件是最好的解决方案。
这个插件将成为一个独立的项目,并且可以通过使用 addSbtPlugin(...) 跨项目重用。
您可以使用本地存储库来托管(构建)插件。
我的想法是将所有常见的依赖项发布到 Maven 存储库。
不过,我更喜欢多模块项目机制。下面是一个例子(播放):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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( ... ) ) |