1. パスのカスタマイズ

パスのカスタマイズ 

このページでは、デフォルトのソースディレクトリ、リソースディレクトリ、ライブラリディレクトリを変更する方法と、それらから含まれるファイルについて説明します。

デフォルトのScalaソースディレクトリの変更 

メインのScalaソースを含むディレクトリは、デフォルトではsrc/main/scalaです。テスト用のScalaソースの場合はsrc/test/scalaです。これを変更するには、Compile(メインソースの場合)またはTest(テストソースの場合)でscalaSourceを変更します。例えば、

Compile / scalaSource := baseDirectory.value / "src"

Test / scalaSource := baseDirectory.value / "test-src"

注記:Scalaソースディレクトリは、Javaソースディレクトリと同じにすることができます。

デフォルトのJavaソースディレクトリの変更 

メインのJavaソースを含むディレクトリは、デフォルトではsrc/main/javaです。テスト用のJavaソースの場合はsrc/test/javaです。これを変更するには、Compile(メインソースの場合)またはTest(テストソースの場合)でjavaSourceを変更します。

例えば、

Compile / javaSource := baseDirectory.value / "src"

Test / javaSource := baseDirectory.value / "test-src"

注記:Scalaソースディレクトリは、Javaソースディレクトリと同じにすることができます。

デフォルトのリソースディレクトリの変更 

メインのリソースを含むディレクトリは、デフォルトではsrc/main/resourcesです。テストリソースの場合はsrc/test/resourcesです。これを変更するには、CompileまたはTest設定でresourceDirectoryを変更します。

例えば、

Compile / resourceDirectory := baseDirectory.value / "resources"

Test / resourceDirectory := baseDirectory.value / "test-resources"

デフォルトの(非管理)ライブラリディレクトリの変更 

非管理ライブラリを含むディレクトリは、デフォルトではlib/です。これを変更するには、unmanagedBaseを変更します。この設定は、プロジェクトレベルまたはCompileRuntimeTest設定で変更できます。

設定なしで定義した場合、このディレクトリはすべての設定のデフォルトディレクトリになります。例えば、以下はjars/をライブラリを含むディレクトリとして宣言します。

unmanagedBase := baseDirectory.value / "jars"

CompileRuntimeTestに対して設定した場合、unmanagedBaseはその設定のライブラリを含むディレクトリになり、デフォルトを上書きします。例えば、以下はCompileに対してのみlib/main/をjarを含むディレクトリとして宣言し、実行やテストには使用しません。

Compile / unmanagedBase := baseDirectory.value / "lib" / "main"

プロジェクトのベースディレクトリをソースディレクトリとして使用しないようにする 

デフォルトでは、sbtはプロジェクトのベースディレクトリにある.scalaファイルをメインソースファイルとして含めます。これを無効にするには、sourcesInBaseを設定します。

sourcesInBase := false

追加のソースディレクトリの追加 

sbtは、デフォルトではscalaSourcejavaSourceからなるunmanagedSourceDirectoriesからsourcesを収集します。ソースディレクトリを追加するには、適切な設定でunmanagedSourceDirectoriesにディレクトリを追加します。例えば、extra-srcをメインソースを含む追加のディレクトリとして追加するには、

Compile / unmanagedSourceDirectories += baseDirectory.value / "extra-src"

注記:このディレクトリには、手動で作成および管理されるソースである非管理ソースのみを含める必要があります。自動生成されたソースの処理については、[ファイルの生成][Howto-Generating-Files]を参照してください。

追加のリソースディレクトリの追加 

sbtは、デフォルトではresourceDirectoryからなるunmanagedResourceDirectoriesからresourcesを収集します。別のリソースディレクトリを追加するには、適切な設定でunmanagedResourceDirectoriesにディレクトリを追加します。例えば、extra-resourcesをメインリソースを含む追加のディレクトリとして追加するには、

Compile / unmanagedResourceDirectories += baseDirectory.value / "extra-resources"

注記:このディレクトリには、手動で作成および管理されるリソースである非管理リソースのみを含める必要があります。自動生成されたリソースの処理については、[ファイルの生成][Howto-Generating-Files]を参照してください。

ソースディレクトリ内のファイルのinclude/exclude 

sbtがソースのunmanagedSourceDirectoriesをトラバースする際、includeFilterに一致し、excludeFilterに一致しないディレクトリとファイルのみが含まれます。includeFilterexcludeFilterjava.io.FileFilter型であり、sbtは便利なコンバイナーをいくつか提供しています。例えば、デフォルトの隠しファイルの除外に加えて、以下の例では名前の中にimplを含むファイルも無視します。

unmanagedSources / excludeFilter := HiddenFileFilter || "*impl*"

メインライブラリとテストライブラリで異なるフィルターを使用するには、CompileTestを個別に設定します。

Compile / unmanagedSources / includeFilter := "*.scala" || "*.java"
Test / unmanagedSources / includeFilter := HiddenFileFilter || "*impl*"

注記:デフォルトでは、sbtは隠しファイルを除く.scala.javaソースを含めます。

リソースディレクトリ内のファイルのinclude/exclude 

sbtがリソースのunmanagedResourceDirectoriesをトラバースする際、includeFilterに一致し、excludeFilterに一致しないディレクトリとファイルのみが含まれます。includeFilterexcludeFilterjava.io.FileFilter型であり、sbtは便利なコンバイナーをいくつか提供しています。例えば、デフォルトの隠しファイルの除外に加えて、以下の例では名前の中にimplを含むファイルも無視します。

unmanagedResources / excludeFilter := HiddenFileFilter || "*impl*"

メインライブラリとテストライブラリで異なるフィルターを使用するには、CompileTestを個別に設定します。

Compile / unmanagedResources / includeFilter := "*.txt"
Test / unmanagedResources / includeFilter := "*.html"

注記:デフォルトでは、sbtは隠しファイル以外のすべてのファイルを含めます。

特定の(非管理)ライブラリのみを含める 

sbtがリソースのunmanagedBaseをトラバースする際、includeFilterに一致し、excludeFilterに一致しないディレクトリとファイルのみが含まれます。includeFilterexcludeFilterjava.io.FileFilter型であり、sbtは便利なコンバイナーをいくつか提供しています。例えば、デフォルトの隠しファイルの除外に加えて、以下の例ではzipファイルを無視します。

unmanagedJars / excludeFilter := HiddenFileFilter || "*.zip"

メインライブラリとテストライブラリで異なるフィルターを使用するには、CompileTestを個別に設定します。

Compile / unmanagedJars / includeFilter := "*.jar"
Test / unmanagedJars / includeFilter := "*.jar" || "*.zip"

注記:デフォルトでは、sbtはjar、zip、ネイティブ動的ライブラリを含め、隠しファイルを除外します。