IntelliJ IDEA 2018.2 Help

SBT

Importing an sbt project

  1. Click Import Project or Open on the welcome screen.

  2. In the dialog that opens, select a directory that contains your sbt project or simply build.sbt. Click OK.

  3. Follow the steps suggested in the Import Project wizard.
    You can use the suggested default settings since they are enough to successfully import your project.
    We recommend that you enable the Use sbt shell for build and import (requires sbt 0.13.5+) option when you use code generation or other features that modify the build process in sbt. If your sbt project is not in the IntelliJ IDEA project root directory, we suggest you skip this option.
    You can also select the appropriate option for grouping modules in your project.

Ensuring sbt and Scala versions compatibility

Often you share your project across a team and need to use a specific version of sbt.

You can override the sbt version in your project's build.properties file.

  1. Create or import your sbt project.

  2. In the Project tool window, in the source root directory locate the build.properties file and open it in the editor.

  3. In the editor explicitly specify the version of sbt that you want to use in the project.
    sbt.version=xxx
  4. Refresh your project. (Click the icons actions refresh svg in the sbt projects tool window.)

Managing sbt projects

sbt project structure

When you create or import an sbt project, IntelliJ IDEA generates the following sbt structure:

  • sbt project (proper build) which defines a project and contains build.sbt file, src, and target directories, modules; anything related to a regular project.

    sbt main

  • sbt build project which is defined in the project subdirectory. It contains additional code that is part of the build definition.

    sbt source root

  • The sbt projects tool window which contains sbt tasks, commands, and settings that you can execute.

    sbt tool window new

When you work with sbt projects you use the build.sbt file to make main changes to your project since IntelliJ IDEA considers an sbt configuration as a single source of truth.

Adding a library to the sbt project

You can add sbt dependencies via the build.sbt file or you can use the import statement in your .scala file.

  1. Open a .scala file in the editor.

  2. Specify a library you want to import.

  3. Put the cursor on the unresolved package and press Alt+Enter.

    sbt add dependency via import

  4. From the list of available intention actions, select Add sbt dependency.

  5. Follow the steps suggested in the wizard that opens and click Finish.

  6. IntelliJ IDEA downloads the artifact, adds the dependency to the build.sbt file and to the sbt projects tool window.

  7. As soon as IntelliJ IDEA detects changes in build.sbt, a notification suggesting to refresh your project will appear. Refresh your project. (Click the icons actions refresh svg in the sbt projects tool window.)
    Alternatively, use the auto-import option located in the sbt settings.

Working with sbt shell

An sbt shell is embedded in the sbt project and is available on your project start. You can use the sbt shell for executing sbt commands and tasks, for running, and debugging your projects.

  • To start the sbt shell, press Ctrl+Shift+S(for Windows) or Cmd+Shift+S (for Mac OS X). Alternatively, click sbt shell icon on the toolbar located on the bottom of the screen.

  • To use the sbt shell for build and import procedures, select the Use sbt shell for build and import (requires sbt 0.13.5+) option located in the sbt settings and perform steps described in the Run a Scala application using the sbt shell section. Note that sbt versions 0.13.16.+ / 1.0.3.+ are recommended.

  • To use the sbt shell for debugging, refer to the debugging with sbt shell section.

  • To run your tests from the sbt shell:
    1. Open a run/debug configuration (Run | Edit Configurations).

    2. Create a test configuration and select the use sbt option from the available settings.

Running sbt tasks

  • You can run sbt tasks by selecting the one you need from the the sbt Tasks directory in the sbt projects tool window.

  • You can manually enter your task (code completion is supported) in the sbt shell and run it directly from there.

  • You can create a run configuration for a task. For example, you can create a custom task which is not part of the list of tasks located in the sbt projects tool window.
    1. Open (Shift+Alt+F10) a run configuration.

    2. Specify the run configuration settings and click OK. If you need, you can add another configuration or a task to execute before running your configuration. Click the icons general add icon in the Before Launch section and from the list that opens select what you need to execute.

IntelliJ IDEA displays results in the sbt shell window.

Working with sbt settings

To access sbt settings, click icons general settings svg in the sbt projects tool window.
You can use sbt settings for the following notable actions:

  • If you want sbt automatically refresh your project every time you make changes to build.sbt, select Use auto-import.

  • To delegate running builds to sbt, select Use sbt shell for build and import.

  • To debug your code via the sbt shell, select Enable debugging for sbt shell option that enables a debug button (icons actions startDebugger svg) in the sbt shell tool window. To start the debugging session, simply click this button. For more information on debugging, see debugging with sbt.

  • To change the .ivy cache location in your project or set other sbt properties, use the VM parameters field.

To check the most common sbt issues and workarounds, see the sbt troubleshooting section.

Last modified: 20 November 2018