https://stackoverflow.com/a/21605652/1737727の答えは、メインプロジェクトからRootProject
で定義されたサブプロジェクトの1つの設定を上書きする方法を示しています。私は複数の設定のためにこれを行う良い方法があるのだろうか、多分複数のサブプロジェクトについても考えていたので、すべての組み合わせを個別にリストする必要はありません。これは、増殖を防ぎ、組み合わせを忘れて誤って設定の不一致を起こす可能性を減らすためです。 SBT `RootProject`の共通設定を使用
lazy val commonSettings = Seq(
organization := "com.example",
version := "0.1.0",
scalaVersion := "2.11.8"
)
lazy val core = (project in file("core")).
settings(commonSettings: _*).
settings(
// other settings
)
lazy val util = (project in file("util")).
settings(commonSettings: _*).
settings(
// other settings
)
しかし
RootProject
は、その設定を設定する方法はありません。
RootProject
を使用しない場合は、SBT docsは設定の共通の配列でこれを行う方法を示しています。私は、上記の答えに従って、次のようなものを試しました:
lazy val util = RootProject(file("../util"))
commonSettings.map(_.key).foreach(key => key in util := key.value)
これは正しいアプローチではないようです。
私はGlobal
またはThisBuild
スコープを使用しましたが、各サブプロジェクトはそれ自身のbuild.sbt
ファイルの設定を行います。正しく理解すると、これらのスコープよりも優先されます。
これを行うには良い方法がありますか、または各サブプロジェクトの各設定を手動で設定する必要がありますか?私は異なるスコープを使用すべきですか?サブプロジェクトはGlobal
の設定を定義し、メインプロジェクトはThisBuild
ですか?
本当にうれしくあります。私は 'RootProject'を使っています。なぜなら、サブプロジェクトはメインプロジェクトの兄弟ディレクトリにあり(複数のプロジェクトで共有されています)、' project in file( "../ util") 'を実行することはできません。より良い方法について学ぶことは素晴らしいことですが、この質問の話題は完全にはないかもしれません。 – sgvd
'util'が独自のビルドを必要としない場合は、' unmanagedSourceDirectories'に直接追加することでインクルードすることができます。 –