Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sbt/sbt/llms.txt
Use this file to discover all available pages before exploring further.
Defaults API
TheDefaults object (defined in sbt.Defaults) provides default implementations for common build settings and tasks. It extends BuildCommon and contains the core configuration that makes sbt work out of the box.
Core Build Settings
buildCore
Combines
thisBuildCore and globalCore to provide essential build infrastructure.- Build-level settings (
thisBuildCore) - Global settings (
globalCore)
Defaults.scala:144
globalCore
Includes file filters, test tasks, Ivy configuration, JVM settings, watch settings, and sbt core functionality.
- Default file filters (
excludeFilter,includeFilter) - Test task defaults
- File input/output configuration
- Watch service settings
- Global Ivy and JVM settings
Defaults.scala:151
JVM Configuration
globalJvmCore
Configures Scala instances, compiler cache, classpath options, and JVM-related defaults.
compilerCache- Compiler instance cachesourcesInBase- Include sources from base directoryautoScalaLibrary- Automatically add scala-library dependencymanagedScalaInstance- Use managed Scala instanceautoCompilerPlugins- Automatically detect compiler pluginsscalaHome- Local Scala installation (default: None)javaHome- Java installation for compilation/forkingjavaOptions- JVM options for forked processessbtPlugin- Enable sbt plugin modecrossPaths- Enable cross-version paths
Defaults.scala:172
Dependency Management
globalIvyCore
Configures dependency resolution, repositories, versioning, and publishing defaults.
internalConfigurationMap- Configuration mappingcredentials- Publishing credentialsexportJars- Export JARs instead of classesscalaOrganization- Scala artifact organizationsbtResolver- Resolver for sbt artifactsversion- Project version (default: “0.1.0-SNAPSHOT”)checksums- Checksum algorithmsconflictManager- Dependency conflict resolutioncsrCacheDirectory- Coursier cache locationcsrReconciliations- Version reconciliation strategies
Defaults.scala:249
Path Configurations
paths
Defines standard project directories: base, target, sources, and resources.
baseDirectory- Project root directorytarget- Build output directorysourceDirectory- Source root (src)sourceManaged- Generated sourcesresourceManaged- Generated resources
Defaults.scala:549
configPaths
Combines source, resource, and output paths for configurations like Compile and Test.
sourceConfigPaths- Source directoriesresourceConfigPaths- Resource directoriesoutputConfigPaths- Output directories
Defaults.scala:567
sourceConfigPaths
Defines managed and unmanaged source directories with cross-version support.
sourceDirectory-src/mainorsrc/testscalaSource- Scala source directoryjavaSource- Java source directoryunmanagedSourceDirectories- Manual source directoriesmanagedSourceDirectories- Generated source directoriessourceGenerators- Tasks that generate sources
Defaults.scala:568
Compilation Settings
compileBase
Sets up Scala instances, compiler bridges, classpath options, and console configuration.
- Scala instance configuration
- Compiler bridge setup
- Cross-version settings
- Console and REPL configuration
- Classpath options
Defaults.scala:679
configTasks
Defines compile, run, test, and documentation tasks for a configuration.
compile- Incremental compilationcompileIncremental- Internal incremental compilecopyResources- Resource copyingconsole- Scala REPLrun/runMain- Application executionclean- Artifact cleanupdoc- API documentation generation
Defaults.scala:940
compileAnalysisSettings
Configures analysis storage, compiler setup, and incremental compilation.
compileAnalysisFile- Analysis storage locationcompileIncSetup- Incremental compiler setupincOptions- Incremental compilation options
Testing Configuration
testTasks
Configures test discovery, execution, filtering, and reporting.
test- Run tests incrementallytestOnly- Run specific teststestQuick- Run failed/affected teststestFull- Run all testsdefinedTests- Discovered test classesloadedTestFrameworks- Available test frameworksexecuteTests- Test execution engine
Defaults.scala:1165
testDefaults
Default test frameworks, listeners, options, and result logging.
testFrameworks- All standard frameworks (ScalaTest, specs2, JUnit, etc.)testListeners- Empty by defaulttestOptions- Empty by defaulttestResultLogger- Default test result logger
Defaults.scala:1152
Helper Functions
makeCrossSources
Base Scala source directory
Base Java source directory
Scala version (e.g., “2.13”, “3”)
Epoch version (e.g., “2” for Scala 2, “3” for Scala 3)
Enable cross-version source directories
List of source directories including cross-version variants
cross is true:
- Base Scala directory
scala-<sv>directory (e.g.,scala-2.13)scala-<epochVersion>directory (e.g.,scala-2)- Java directory
Defaults.scala:835
makeCrossTarget
Base target directory
Full Scala version
Scala binary version
sbt version
Is this an sbt plugin?
Enable cross-building
Target directory path with version suffixes
- For Scala 3:
target/scala-<fullVersion>/ - For Scala 2:
target/scala-<binaryVersion>/ - For plugins: Additional
sbt-<version>/suffix
Defaults.scala:876
generate
Setting key containing generator tasks (e.g.,
sourceGenerators, resourceGenerators)Flattened list of all generated files
Defaults.scala:1133
Project-Level Settings
projectCore
Basic project configuration including name and logging.
name- Derived from project IDlogManager- Logging manager setuponLoadMessage- Project load notification
Defaults.scala:539
projectTasks
Tasks that operate on the entire project.
cleanFiles- Files to delete on cleanclean- Clean task implementationtransitiveDynamicInputs- Watch dependency tracking
Defaults.scala:1124
Usage Example
Defaults settings are applied automatically by sbt’s plugin system and don’t need explicit configuration.