私はいくつかのSBT 0.13/Play 2.2プロジェクト(ウェブサイト)を持っています。彼らはいくつかの共通の機能を共有するので、それらはすべてマルチモジュールです。これにより、プロジェクト構成ファイルは複雑でほぼ同じですが、それほど複雑ではありません。SBT(再生)マルチプロジェクトで共有設定を使用するにはどうすればよいですか?
これらの設定ファイルをプロジェクト全体でできるだけ共有したいと考えています(頻繁に再生を更新すると、5つ以上のウェブサイトを最新の状態に保つことができます)プロジェクト全体の依存関係リストの進化)。
build.propertiesとplugins.sbtはプロジェクト間で同一であり、簡単なスクリプトで上書きできます。すばらしいです。
Build.scalaはトリッキーです - 私はそうのような共有の基本クラスを紹介したいと思います:Build.scalaで行うこと
abstract class MyBuildBase extends Build { ... }
:
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ファイルに実際に何を入れて、実際にこれを実現するのかは私には明らかにわかりません - という例を見つけることはできません。ビルドファイルに ""という名前の追加ソースファイルが含まれています。
提案がありますか?
優れた提案。 SVNはv1.6以来、ディレクトリだけでなく外部ファイルも扱えることが分かったので、私はそのように解決しました。しかし、あなたの答えは私が実際に尋ねた質問をカバーしています。 – Jxtps