我有几个 SBT 0.13 / Play 2.2 项目(网站)。它们都是多模块的,因为它们共享一些共同的功能。这使得他们的项目配置文件既复杂又几乎相同,但并不完全相同。
我希望能够在项目中尽可能多地共享这些配置文件(频繁的播放更新使得保持 5 个以上的网站保持最新状态非常痛苦,更不用说所有几乎相同但不断发展的依赖项列表了项目)。
build.properties 和 plugins.sbt 在项目中是相同的,可以被一个简单的脚本覆盖。伟大的。
Build.scala 比较棘手 - 我想引入一个共享基类,如下所示:
abstract class MyBuildBase extends Build { ... }
在 Build.scala 中做:
object ApplicationBuild extends MyBuildBuild { ... }
为了让这一切有意义,MyBuildBase.scala 需要跨项目共享。这可以通过 svn:external 来完成,它对目录进行操作。这意味着我需要在编译 Build.scala 时以某种方式使这个共享目录可访问(否则 sbt 会大声抱怨)。
阅读http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.html和http://www.scala-sbt.org/0.13.0/docs/Getting-Started/Full -Def.html似乎这应该是可能的。
但是,我非常不清楚在 project/project/Build.scala 文件中实际放入什么来实际实现这一点 - 我找不到“旨在构建 sbt 构建文件并包含的 sbt 构建文件的示例”构建中的一些额外源文件”。
有什么建议么?