このページでは、デフォルトのソースディレクトリ、リソースディレクトリ、ライブラリディレクトリを変更する方法と、それらから含まれるファイルについて説明します。
メインの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ソースを含むディレクトリは、デフォルトでは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を変更します。この設定は、プロジェクトレベルまたはCompile、Runtime、Test設定で変更できます。
設定なしで定義した場合、このディレクトリはすべての設定のデフォルトディレクトリになります。例えば、以下はjars/をライブラリを含むディレクトリとして宣言します。
unmanagedBase := baseDirectory.value / "jars"
Compile、Runtime、Testに対して設定した場合、unmanagedBaseはその設定のライブラリを含むディレクトリになり、デフォルトを上書きします。例えば、以下はCompileに対してのみlib/main/をjarを含むディレクトリとして宣言し、実行やテストには使用しません。
Compile / unmanagedBase := baseDirectory.value / "lib" / "main"
デフォルトでは、sbtはプロジェクトのベースディレクトリにある.scalaファイルをメインソースファイルとして含めます。これを無効にするには、sourcesInBaseを設定します。
sourcesInBase := false
sbtは、デフォルトではscalaSourceとjavaSourceからなる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]を参照してください。
sbtがソースのunmanagedSourceDirectoriesをトラバースする際、includeFilterに一致し、excludeFilterに一致しないディレクトリとファイルのみが含まれます。includeFilterとexcludeFilterはjava.io.FileFilter型であり、sbtは便利なコンバイナーをいくつか提供しています。例えば、デフォルトの隠しファイルの除外に加えて、以下の例では名前の中にimplを含むファイルも無視します。
unmanagedSources / excludeFilter := HiddenFileFilter || "*impl*"
メインライブラリとテストライブラリで異なるフィルターを使用するには、CompileとTestを個別に設定します。
Compile / unmanagedSources / includeFilter := "*.scala" || "*.java"
Test / unmanagedSources / includeFilter := HiddenFileFilter || "*impl*"
注記:デフォルトでは、sbtは隠しファイルを除く
.scalaと.javaソースを含めます。
sbtがリソースのunmanagedResourceDirectoriesをトラバースする際、includeFilterに一致し、excludeFilterに一致しないディレクトリとファイルのみが含まれます。includeFilterとexcludeFilterはjava.io.FileFilter型であり、sbtは便利なコンバイナーをいくつか提供しています。例えば、デフォルトの隠しファイルの除外に加えて、以下の例では名前の中にimplを含むファイルも無視します。
unmanagedResources / excludeFilter := HiddenFileFilter || "*impl*"
メインライブラリとテストライブラリで異なるフィルターを使用するには、CompileとTestを個別に設定します。
Compile / unmanagedResources / includeFilter := "*.txt"
Test / unmanagedResources / includeFilter := "*.html"
注記:デフォルトでは、sbtは隠しファイル以外のすべてのファイルを含めます。
sbtがリソースのunmanagedBaseをトラバースする際、includeFilterに一致し、excludeFilterに一致しないディレクトリとファイルのみが含まれます。includeFilterとexcludeFilterはjava.io.FileFilter型であり、sbtは便利なコンバイナーをいくつか提供しています。例えば、デフォルトの隠しファイルの除外に加えて、以下の例ではzipファイルを無視します。
unmanagedJars / excludeFilter := HiddenFileFilter || "*.zip"
メインライブラリとテストライブラリで異なるフィルターを使用するには、CompileとTestを個別に設定します。
Compile / unmanagedJars / includeFilter := "*.jar"
Test / unmanagedJars / includeFilter := "*.jar" || "*.zip"
注記:デフォルトでは、sbtはjar、zip、ネイティブ動的ライブラリを含め、隠しファイルを除外します。