私はいくつかの SBT 0.13 / Play 2.2 プロジェクト (Web サイト) を持っています。それらはいくつかの共通機能を共有しているため、すべてマルチモジュールです。これにより、プロジェクト構成ファイルが複雑になり、ほぼ同一になりますが、完全ではありません。
プロジェクト全体でこれらの構成ファイルを可能な限り共有できるようにしたいと考えています (頻繁なプレイの更新により、5 つ以上の Web サイトを最新の状態に保つのは非常に困難です。プロジェクト)。
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 ビルドファイルとインクルードビルド内のいくつかの余分なソース ファイル" .
助言がありますか?