Getting Started with Scala and sbt on the Command Line

Language

In this tutorial, you’ll see how to create a Scala project from a template. You can use this as a starting point for your own projects. We’ll use sbt, the de facto build tool for Scala. sbt compiles, runs, and tests your projects among other related tasks. We assume you know how to use a terminal.

Installation

  1. Make sure you have the Java 8 JDK (also known as 1.8)
    • Run javac -version in the command line and make sure you see javac 1.8.___
    • If you don’t have version 1.8 or higher, install the JDK
  2. Install sbt

Create the project

  1. cd to an empty folder.
  2. Run the following command sbt new scala/hello-world.g8. This pulls the ‘hello-world’ template from GitHub. It will also create a target folder, which you can ignore.
  3. When prompted, name the application hello-world. This will create a project called “hello-world”.
  4. Let’s take a look at what just got generated:
  1. cd to an empty folder.
  2. Run the following command sbt new scala/scala3.g8. This pulls the ‘scala3’ template from GitHub. It will also create a target folder, which you can ignore.
  3. When prompted, name the application hello-world. This will create a project called “hello-world”.
  4. Let’s take a look at what just got generated:
- hello-world
    - project (sbt uses this to install and manage plugins and dependencies)
        - build.properties
    - src
        - main
            - scala (All of your scala code goes here)
                - Main.scala (Entry point of program) <-- this is all we need for now
    - build.sbt (sbt's build definition file)

After you build your project, sbt will create more target directories for generated files. You can ignore these.

Running the project

  1. cd into hello-world.
  2. Run sbt. This will open up the sbt console.
  3. Type ~run. The ~ is optional and causes sbt to re-run on every file save, allowing for a fast edit/run/debug cycle. sbt will also generate a target directory which you can ignore.

Modifying the code

  1. Open the file src/main/scala/Main.scala in your favorite text editor.
  2. Change “Hello, World!” to “Hello, New York!”
  3. If you haven’t stopped the sbt command, you should see “Hello, New York!” printed to the console.
  4. You can continue to make changes and see the results in the console.

Adding a dependency

Changing gears a bit, let’s look at how to use published libraries to add extra functionality to our apps.

  1. Open up build.sbt and add the following line:
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "2.1.1"

Here, libraryDependencies is a set of dependencies, and by using +=, we’re adding the scala-parser-combinators dependency to the set of dependencies that sbt will go and fetch when it starts up. Now, in any Scala file, you can import classes, objects, etc, from scala-parser-combinators with a regular import.

You can find more published libraries on Scaladex, the Scala library index, where you can also copy the above dependency information for pasting into your build.sbt file.

Note for Java Libraries: For a regular Java library, you should only use one percent (%) between the organization name and artifact name. Double percent (%%) is a specialisation for Scala libraries. You can learn more about the reason for this in the sbt documentation.

Next steps

Continue to the next tutorial in the getting started with sbt series, and learn about testing Scala code with sbt in the command line.

or

  • Continue learning Scala interactively online on Scala Exercises.
  • Learn about Scala’s features in bite-sized pieces by stepping through our Tour of Scala.

Contributors to this page: