heroku-buildpack-scala

Heroku buildpack: Scala

Github星跟蹤圖

Heroku Buildpack for Scala Build Status

This is the official Heroku buildpack for Scala apps.

How it works

The buildpack will detect your app as Scala if it has a project/build.properties file and either a .sbt or .scala based build config (for example, a build.sbt file). It vendors a version of sbt into your slug (if you are not using sbt-native-packager, it also includes your popluated .ivy/cache in the slug). The .ivy2 directory will be cached between builds to allow for faster build times.

It is strongly recommended that you use sbt-native-packager with this buildpack instead of sbt-start-script. The latter is deprecated, and will result in exessively large slug sizes.

Documentation

For more information about using Scala and buildpacks on Heroku, see these articles:

Examples

There are a number of example applications that demonstrate various ways of configuring a project for use on Heroku. Here are a few:

Customizing

This buildpack uses sbt-extras to run sbt.
In this way, the execution of sbt can be customized either by setting
the SBT_OPTS config variable, or by creating a .sbtopts file in the
root directory of your project. When passing options to the underlying
sbt JVM, you must prefix them with -J. Thus, setting stack size for
the compile process would look like this:

$ heroku config:set SBT_OPTS="-J-Xss4m"

Running additional tasks before the build

Sometimes, it might be necessary to run additional sbt tasks before a build and deployment (for example, database migrations). Ideally, the tasks should be interdependent such that these tasks run automatically as pre-requisities to compile stage, but sometimes this might not be the case. To add any additional tasks, set the environment variable SBT_PRE_TASKS to a list of tasks that should be executed. If the following is set:

SBT_PRE_TASKS=flyway:migrate info

Then, the following command will be run for build:

sbt flyway:migrate info compile stage

Clean builds

In some cases, builds need to clean artifacts before compiling. If a clean build is necessary, configure builds to perform clean by setting SBT_CLEAN=true:

$ heroku config:set SBT_CLEAN=true
Setting config vars and restarting example-app... done, v17
SBT_CLEAN: true

All subsequent deploys will use the clean task. To remove the clean task, unset SBT_CLEAN:

$ heroku config:unset SBT_CLEAN
Unsetting SBT_CLEAN and restarting example-app... done, v18

Development

To make changes to this buildpack, fork it on Github. Push up changes to your fork, then create a new Heroku app to test it, or configure an existing app to use your buildpack:

# Create a new Heroku app that uses your buildpack
heroku create --buildpack <your-github-url>

# Configure an existing Heroku app to use your buildpack
heroku buildpacks:set <your-github-url>

# You can also use a git branch!
heroku buildpacks:set <your-github-url>#your-branch

License

Licensed under the MIT License. See LICENSE file.

主要指標

概覽
名稱與所有者heroku/heroku-buildpack-scala
主編程語言Shell
編程語言Shell (語言數: 3)
平台
許可證MIT License
所有者活动
創建於2011-05-16 21:41:09
推送於2024-10-18 10:32:14
最后一次提交
發布數65
最新版本名稱v98 (發布於 )
第一版名稱slugc-v290 (發布於 2011-08-23 17:38:28)
用户参与
星數2
關注者數23
派生數1
提交數690
已啟用問題?
問題數56
打開的問題數7
拉請求數152
打開的拉請求數0
關閉的拉請求數39
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?