【发布时间】:2013-11-12 02:33:42
【问题描述】:
我有几个 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 构建文件,并在构建中包含一些额外的源文件”。
有什么建议吗?
【问题讨论】:
标签: scala playframework sbt playframework-2.2