このページでは、デフォルトのソースディレクトリ、リソースディレクトリ、ライブラリディレクトリを変更する方法と、それらから含まれるファイルについて説明します。
メインの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、ネイティブ動的ライブラリを含め、隠しファイルを除外します。