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
- Make sure you have the Java 8 JDK (also known as 1.8)
- Run
javac -version
in the command line and make sure you seejavac 1.8.___
- If you don’t have version 1.8 or higher, install the JDK
- Run
- Install sbt
Create the project
cd
to 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 atarget
folder, 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:
cd
to an empty folder.- Run the following command
sbt new scala/scala3.g8
. This pulls the ‘scala3’ template from GitHub. It will also create atarget
folder, 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 target
directories
for generated files. You can ignore these.
Running the project
cd
intohello-world
.- Run
sbt
. This will open up the sbt console. - 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 atarget
directory which you can ignore.
Modifying the code
- Open the file
src/main/scala/Main.scala
in 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.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.