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.
- Make sure you have the Java 8 JDK (also known as 1.8)
javac -versionin the command line and make sure you see
- If you don’t have version 1.8 or higher, install the JDK
- Install sbt
Create the project
cdto an empty folder.
- Run the following command
sbt new scala/hello-world.g8. This pulls the ‘hello-world’ template from GitHub. It will also create a
targetfolder, which you can ignore.
- When prompted, name the application
hello-world. This will create a project called “hello-world”.
- 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
for generated files. You can ignore these.
Running the project
sbt. This will open up the sbt console.
~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
targetdirectory which you can ignore.
Modifying the code
- Open the file
src/main/scala/Main.scalain your favorite text editor.
- Change “Hello, World!” to “Hello, New York!”
- If you haven’t stopped the sbt command, you should see “Hello, New York!” printed to the console.
- 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.
- Open up
build.sbtand add the following line:
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"
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
Continue to the next tutorial in the getting started with sbt series, and learn about testing Scala code with sbt in the command line.