サーチ…
同じビルド内の複数のプロジェクト(サブプロジェクト)
ビルドでは、複数のソースディレクトリを組み合わせることがあります。それぞれのディレクトリは独自の「プロジェクト」です。たとえば、次のようなビルド構造があります。
projectName / build.sbtプロジェクト/ src / main / ...テスト/ ...コア/ src / main / ...テスト/ ... webapp / src / main / ... test / ...
上記のプロジェクトでは、 projectName/srcコードはrootプロジェクトと見なされます。他の2つのモジュール、または 'サブプロジェクト'、 coreとwebappます。
サブプロジェクトの設定は、プロジェクトにサブディレクトリが指定されていることを除いて、ルートプロジェクトの設定と同様です。この例は、 coreプロジェクトとwebappプロジェクトを集約するルートプロジェクトを示しています。
lazy val root = (project in file(".")).aggregate(core,webapp).dependsOn(core, webapp)
lazy val core = (project in file("core"))
lazy val webapp = (project in file("webapp")).dependsOn(core)
file()渡される値は、プロジェクトルートに関連するディレクトリです。
webappプロジェクトは、上記の行に指定されたcore値を取るdependsOn節で示されるcoreプロジェクトに依存します。 dependsOnとlazy評価は、プロジェクトがそれらを利用する前に依存関係が利用可能であることを保証します。この場合、 webapp依存するcore 、そのcoreビルドがコンパイルしようとする前にコンパイルされるwebapp 。
aggregateは、1つのプロジェクトで定義されたタスクを、それを集約するプロジェクトで使用できるようにします。例えば、実行compileにrootも実行するプロジェクトcompileにcoreとwebapp 。
プロジェクトでのマクロの構成
build.sbtファイル(またはプロジェクトが別の場所にある場合はプロジェクトが定義されている場所)に、次の設定を追加します。
scalacOptions += "-language:experimental.macros"
たとえば、プロジェクトは次のように定義されます。
lazy val main = project.in(file(".")) // root project
.settings(scalacOptions += "-language:experimental.macros",
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full))
上記の例では、Scala 2.10.x完全なサポートを提供するためにparadiseプラグインが含まれています。
ディスプレイの設定
SBTコンソールで、プロジェクトのすべての定義可能な設定を一覧表示するには:
settings
または、サブプロジェクト(たとえば、 webappという名前の設定)を取得するには、次のようにします。
project webapp
settings
上記の最初の行は、特定のサブプロジェクトにナビゲートします。
特定の設定( organization )の値を表示するには:
show organization
これにより、その設定の値が表示されます。