Test your SBT knowledge with a free interactive quiz — 20 questions with answers and explanations. No signup needed to play.
Question 1/12Score 0
What is the purpose of SBT's `project/build.properties` file, particularly the `sbt.version` setting typically found within it?
In this round
What is the purpose of SBT's `project/build.properties` file, particularly the `sbt.version` setting typically found within it?
What is a reasonable comparison between SBT and Maven/Gradle (build tools more commonly associated with Java specifically), given that all three serve a broadly similar overall PURPOSE (compilation, dependency management, testing) but for somewhat different primary language ecosystems?
What is the purpose of SBT's "Test" configuration scope, e.g. adding `% Test` to a dependency declaration like `"org.scalatest" %% "scalatest" % "3.2.15" % Test`?
What is the purpose of the `sbt assembly` command (provided by the popular `sbt-assembly` plugin), and what problem does it solve for deploying a Scala application?
What is the purpose of the SBT "shell" (the interactive command-line session you enter by running `sbt` with no arguments), and how does it differ from running individual SBT commands one at a time directly from the OS shell?
What is a reasonable justification for a Scala team specifically valuing SBT's support for defining CUSTOM TASKS (writing actual Scala code to implement a project-specific build step beyond SBT's built-in commands), given that build.sbt files are themselves genuine Scala code?
What is the significance of `build.sbt` being written using actual SCALA syntax (rather than SBT requiring an entirely separate, XML-based or otherwise non-Scala configuration format)?
What is a reasonable comparison between how SBT handles dependency resolution/management (pulling in a project's required libraries from a repository like Maven Central) and how a build tool for a different language ecosystem (like npm for JavaScript/Node.js) handles this same broad category of responsibility?
What is a "multi-project build" in SBT, and what problem does it solve for organizing a larger codebase containing several related but distinct sub-modules?
What is the purpose of SBT's "watch mode" (triggered by prefixing a command with `~`, like `~compile` or `~test`), and what development workflow does it support?
What is SBT (originally "Simple Build Tool," though the name is now typically used just as the acronym)?
What is a reasonable justification for a team specifically running SBT in a Continuous Integration (CI) pipeline using a NON-interactive, single-command invocation (like `sbt test` run as one complete OS-level command), rather than relying on the interactive SBT shell workflow more commonly used during local development?