This is the official Heroku buildpack for apps that use sbt as their build tool. It's primarily used to build Scala applications, but it can also build applications written in other JVM languages (such as Play Framework apps written in Java).
If you're using a different JVM build tool, use the appropriate buildpack:
- Java buildpack for Maven projects
- Gradle buildpack for Gradle projects
- Clojure buildpack for Leiningen projects
This buildpack officially supports sbt 1.x. Best-effort support is available for apps using sbt 0.13.18. sbt 2.x support will be added after its release.
See the Getting Started on Heroku with Scala tutorial.
Your app requires at least one .sbt file and a project/build.properties file in the root directory. The project/build.properties file must define the sbt.version property.
The buildpack uses the stage sbt task to build your application. The easiest way to provide this task is with sbt-native-packager, which includes it by default.
Specify an OpenJDK version by creating a system.properties file in the root of your project directory and setting the java.runtime.version property. See the Java Support article for available versions and configuration instructions.
The buildpack uses the sbt.version property in your project/build.properties file to determine which sbt version to use. Update this property to change the sbt version.
Configure the buildpack by setting environment variables:
| Environment Variable | Description | Default |
|---|---|---|
SBT_TASKS | sbt tasks to execute | compile stage |
SBT_OPTS | JVM options for sbt execution | (none) |
SBT_CLEAN | Run clean task before build | false |
SBT_PROJECT | For multi-project builds, specifies which project to build | (none) |
SBT_AT_RUNTIME | Make sbt available at runtime | true |
KEEP_SBT_CACHE | Prevent removal of compilation artifacts from slug | false |
For more information about using Scala on Heroku, see the Scala Support documentation on Dev Center.
