Setting up Scala projects
Use sbt, Maven, Gradle, or Mill to create projects and import them into your favorite IDE or editor
Scala is a dynamic, general-purpose programming language for the Java Virtual Machine (JVM). However, those new to Scala often find it challenging to get started, since Scala is not the primary language on the JVM. At the same time, the explosion of available alternate editors, IDEs, and package installers offers a bewildering array of choices for setting up a basic project. Scala expert Daniel Hinojosa cuts through the complexity, offering a simple, hands-on guide to setting up a Scala project using sbt (the Simple Build Tool)—currently the favored build tool in the Scala ecosystem.
Over three hours, Daniel walks you through creating Scala projects with sbt and bringing those projects into your favorite IDE or editor. You'll also discover how to add and reload dependencies and explore other build common tools like Maven, Gradle, and Mill. You'll leave ready to use sbt to manage your projects.
This class is a great follow-up if you’ve taken Daniel’s Learn the basics of Scala in 3 hours course or if you already understand concepts such as manipulating variables, classes, and functions in Scala.
What you'll learn-and how you can apply it
By the end of this live online course, you’ll understand:
- How to set up a project in sbt
- sbt basic commands
- How to do basic project management in sbt
- How to set up testing with ScalaTest
And you’ll be able to:
- Add or update dependencies
- Bring your project into your favorite editor, such as IntelliJ, IDEA, Eclipse, or VS Code
- Create a project in other build tools like Maven, Gradle, and Mill
This training course is for you because...
- You're interested in creating a project in Scala.
- You have questions regarding setup, the typical toolchain, and the best way to get started with Scala.
- You want to set up and get started with testing with Scala.
- A basic understanding of Scala (equivalent to Learn the basics of Scala in 3 hours)
Materials or downloads needed in advance:
- A machine with the latest JDK 8 or JDK 9, Scala, the latest IntelliJ or Eclipse with the Scala and Scala-IDE plug-ins, and sbt installed and set up
- Learn the basics of Scala in 3 hours (live online training course with Daniel Hinojosa)
- "Why is Scala so popular?" (article)
- Scala School basics (tutorial)
- A Scala tutorial for Java programmers (tutorial)
- Scala: Beyond the basics (live online training course with Daniel Hinojosa)
- Scala core programming: Sealed traits, collections, and functions (live online training course with Daniel Hinojosa)
- Scala core programming: Methods, classes, and traits (live online training course with Daniel Hinojosa)
- sbt (website)
- Mill (website)
- JetBrains Scala plug-in (website)
- Scala IDE for Eclipse (website)
About your instructor
Daniel Hinojosa is an instructor, speaker, author, programmer, and consultant with over 20 years of experience working with private, educational, and government institutions. He is also currently a speaker on the No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala, but he also dabbles with non-JVM languages like Haskell, Ruby, Python, Lisp, C, and C++. He is an avid Pomodoro Technique practitioner and attempts to learn a new programming language every year. Daniel is the author of Testing in Scala and the video Beginning Scala Programming as well as the teacher of a line of training courses, all for O’Reilly. In his downtime, he enjoys reading, swimming, playing with Legos, and cooking.
The timeframes are only estimates and may vary according to how the class is progressing
sbt introduction and basics (30 minutes)
- Lecture: sbt overview; verifying Java, Scala, and sbt installation; adding proxy information; adding memory arguments
Manually creating a project in sbt (30 minutes)
- Lecture: Creating and editing build.sbt;adding proxy information; adding memory arguments
- Hands-on exercise: Create a manual build
Break (10 minutes)
Automatically creating a project in sbt using Giter8 (15 minutes)
- Lecture: Giter8 overview; using Giter8 to create a project in sbt
- Hands-on exercise: Create a build using Giter8 templates
Bringing your project into your IDEs (25 minutes)
- Lecture: Bringing an sbt project into Eclipse; bringing an sbt project into IntelliJ IDEA; bringing an sbt project into VS Code; bringing an sbt project into other editors
- Hands-on exercise: Import your Giter8 project
Break (10 minutes)
Basic sbt commands (20 minutes)
- Lecture: Running commands from the OS; running commands within sbt; common commands, such as cleaning, compiling, testing with ScalaTest
- Hands-on exercise: Test your code
Basic sbt commands (10 minutes)
- Lecture: More running commands from the OS; using REPL with classloading with Console
- Hands-on exercise: Use Console
Other build tools (30 minutes)
- Lecture: Scala with Maven; Scala with Gradle; Scala with Mill