sbt
sbt での作業
sbt プロジェクトをインポートまたは作成したら、その build.sbt ファイルをエディターで直接編集できます。 build.sbt では、コンパイラーオプション、サブプロジェクトに関する情報を指定し、タスクと設定を定義することもできます。 build.sbt ファイルを変更するたびに、変更内容を IntelliJ IDEA のプロジェクトモデルと同期する必要があります。
build.sbt に加えられた変更を自動的に同期するように、 ビルドスクリプトの変更後にプロジェクトを同期する オプションを構成できます。 このオプションにアクセスするには、 を選択します。
手動同期の場合は、 sbt プロジェクトツールウィンドウのツールバーで対応するアクション を使用します。
実行構成の前に実行するために、任意の sbt タスクをアタッチできることに注意してください。
既存の sbt プロジェクトを開く
新しいプロジェクトを作成するには、 New Project wizard を起動し、 Scala や sbt の選択、プロジェクトのロケーションや JDK、sbt と Scala のバージョンの指定など、ウィザードの指示に従って進めます。 (sbt および Scala バージョンは自動で取得されます。)
現在 IntelliJ IDEA でプロジェクトが開かれていない場合は、'ようこそ' 画面で 開く をクリックします (そうでない場合は、メインメニューから を選択します)。 次に、ダイアログで、sbt プロジェクトの説明 build.sbt を含むファイルを選択します。 「OK 」をクリックし、次のダイアログで「プロジェクトとして選択 」をクリックします。
IntelliJ IDEA は IDE で sbt プロジェクトを開いて同期します。 プロジェクトを開くときにインポートオプションを調整する必要がある場合は、 sbt 設定を参照してください。
sbt および Scala バージョンの互換性を確保する
多くの場合、プロジェクトをチーム間で共有し、特定のバージョンの sbt を使用する必要があります。 プロジェクトの build.properties ファイルで sbt バージョンをオーバーライドできます。
sbt プロジェクトを作成するか 開きます。 プロジェクト ツールウィンドウの ソースルート ディレクトリで build.properties ファイルを見つけ、エディターで開きます。 次に、エディターで、プロジェクトで使用する sbt のバージョンを明示的に指定します。
プロジェクトを再インポートします。 (sbt ツールウィンドウで をクリックします。)
sbt プロジェクトの構造
sbt プロジェクトを作成またはインポートすると、IntelliJ IDEA は次の sbt 構造を生成します。
プロジェクトを定義し、 build.sbt ファイル、 src 、および ターゲットディレクトリ、モジュールを含む sbt プロジェクト(適切なビルド)。

sbt ビルドプロジェクトは、 project サブディレクトリ内に定義されています。 ビルド定義の一部となる追加のコードが含まれています。

sbt ツールウィンドウには、実行可能な sbt タスク、コマンド、設定が含まれています。

sbt プロジェクトを管理する
sbt プロジェクトで作業する場合、IntelliJ IDEA は sbt 構成を唯一の信頼できるソースと見なすため、 build.sbt ファイルを使用してプロジェクトに主な変更を加えます。
エディターで build.sbt を手動で変更するたびに、変更をロードする必要があります。 IntelliJ IDEA は、エディターの右側に、プロジェクト (Ctrl+Shift+O) の作成を sbt の変更を読み込む に提案する通知アイコンを表示します。

プロジェクトのインポートプロセスを制御する場合は、アクションを手動でトリガーするか、自動再読み込みプロセスを構成できます。
sbt プロジェクトを再ロードする
sbt ツールウィンドウで、リンクされたプロジェクトを右クリックします。
コンテキストメニューから プロジェクトの再ロード
を選択します。
このアクションを呼び出すと、IntelliJ IDEA は sbt ツールウィンドウでプロジェクト構造を解析します。
IntelliJ IDEA はプロジェクトの一部だけを再ロードすることはできません。サブプロジェクトと依存関係を含むプロジェクト全体を再ロードします。
自動再読み込みを構成する
設定 ダイアログ(Ctrl+Alt+S )で、 に移動します。
または、 sbt ツールウィンドウで
をクリックし、 自動再ロードの設定 オプションを選択します。

ビルドツール 設定で、次のオプションを指定します:

ビルドスクリプトの変更を再読み込みする: このオプションはデフォルトで選択されています。 自動再ロードを無効にして再ロードプロセスを手動で制御する場合は、このチェックボックスをオフにします。
任意の変更: build.sbt に加えた変更または外部の変更の後にプロジェクトを自動的に再ロードする場合は、このオプションを選択します。
エディターで sbt ビルドスクリプトを手動で変更するたびに、変更をロードする必要があります。 IntelliJ IDEA は、エディターの右側に、プロジェクト (Ctrl+Shift+O) の作成を sbt の変更を読み込む に提案する通知アイコンを表示します。

任意の変更 オプションを使用すると、IntelliJ IDEA はすべての変更を自動的に再ロードします。
外部の変更: このオプションを選択すると、IntelliJ IDEA は、VCS が変更され、IDE の外部でビルドファイルが変更された後にのみ、プロジェクトを自動的に再ロードします。
外部の sbt プロジェクトをリンクする
build.sbt を開きます。
次のコードを指定します。
val localDep = RootProject(file("/path/to/project"))この場合の
localDepは、ファイルシステムのどこかにあるプロジェクトであり、モジュールとしてインポートされます。プロジェクトを再ロードします。 (sbt ツールウィンドウで
をクリックします。)
IntelliJ IDEA は、追加されたプロジェクトを プロジェクト ツールウィンドウと sbt ツールウィンドウに表示します。
サブプロジェクトまたはモジュールを sbt プロジェクトに追加する
エディターで build.sbt を開きます。
指定、例:
lazy val sampleModule = (project in file("sampleModule"))この場合の
"sampleModule"は、追加するサブプロジェクトです。 複数のサブプロジェクトを指定できます。プロジェクトを再インポートします。 (sbt ツールウィンドウで
をクリックします。)
IntelliJ IDEA は、適切な情報を含むサブプロジェクトディレクトリを生成し、それを プロジェクト ツールウィンドウと sbt ツールウィンドウの両方に表示します。
サブプロジェクトを更新する
Scala のバージョンを変更したときにサブプロジェクトが自動的に更新されるようにするには、サブプロジェクトごとに commonSettings および 設定 メソッド呼び出しを指定します。
build.sbt を開きます。
たとえば、次のコードを指定します。
lazy val commonSettings = Seq( organization := "com.example", version := "0.1.0-SNAPSHOT", scalaVersion := "2.12.6" ) lazy val moduleSample = (project in file("moduleSample")) .settings( commonSettings )適切な Scala バージョンが、 プロジェクト ツールウィンドウのサブプロジェクトのディレクトリと、サブプロジェクトの依存関係として sbt ツールウィンドウに追加されます。
sbt シェルを使用する
sbt シェルは sbt プロジェクトに組み込まれており、プロジェクトの開始時に利用できます。 sbt コマンドとタスクの実行、プロジェクトの実行とデバッグに sbt シェルを使用できます。
sbt シェルを開始するには、Windows の場合は Ctrl+Shift+S 、macOS の場合は ⌘+⇧+S を押します。 または、画面の下部にあるツールバーの
をクリックします。ビルドおよびインポート手順で sbt シェルを使用するには、 sbt 設定にある sbt シェルを使用する セクションを選択し、 sbt シェルを使用して Scala アプリケーションを実行するセクションで説明されている手順を実行します。
デバッグに sbt シェルを使用するには、 sbt シェルによるデバッグのセクションを参照してください。
sbt シェルからテストを実行するには:
実行 / デバッグ構成( )を開きます。
テスト構成を作成し、使用可能な設定から sbt を使用する オプションを選択します。
sbt タスクを実行する
sbt タスク ツールウィンドウの sbt ディレクトリから必要なタスクを選択して、sbt タスクを実行できます。
sbt シェルに手動でタスク(コード補完がサポートされている)を手動で入力し、そこから直接実行することができます。
タスクの実行構成を作成できます。 例: sbt ツールウィンドウにあるタスクリストの一部ではないカスタムタスクを作成できます。
Alt+Shift+F10 を押して、実行構成を開きます。
実行構成設定を指定し、 OK をクリックします。 必要に応じて、構成を実行する前に実行する別の構成またはタスクを追加できます。 起動前 セクションの
をクリックし、表示されるリストから実行する必要があるものを選択します。
集中モード(ツールバーやツールウィンドウなし)で作業している場合、 なんでも実行 ウィンドウから sbt タスクやコマンドを実行できます。 Ctrl を 2 回押してウィンドウを開き、コマンドを入力して Enter を押します。
IntelliJ IDEA は sbt シェル ウィンドウに結果を表示します。
sbt 設定を操作する
sbt 設定を使用して、sbt プロジェクト、sbt バージョン、プロジェクトの変更のインポートなどのビルドおよび実行アクションを構成します。
sbt 設定にアクセスする
Ctrl+Alt+S を押して設定を開き、 を選択します。
sbt ツールウィンドウのツールバーの
をクリックして、sbt 設定にアクセスします。
ウィンドウは、 一般設定 と sbt プロジェクト の 2 つのセクションに分かれています。
一般設定
一般設定 セクションで、次のオプションを設定できます。

項目 | 説明 |
|---|---|
JRE (J) | このプロジェクトを実行する JRE を、ドロップダウンリストから選択するか、カスタムの場所を指定して選択してください。 これはデフォルトのプロジェクト SDK よりも優先されます。 |
最大ヒープサイズ | sbt の起動時に割り当てられる最大ヒープサイズを指定します。 |
VM parameters | sbt に渡す JVM パラメーターを指定します。 JVM オプションは、 |
Sbt options | sbt に渡す sbt オプションを指定します。 利用可能なすべてのオプションを表示するには、 |
Environment variables | sbt プロセスに挿入する環境変数を指定します。 |
Launcher (sbt-launch.jar) | カスタム sbt ランチャーを指定します。 デフォルトでは、IntelliJ IDEA はバンドルされている sbt-launch.jar を使用します。 |
sbt プロジェクト
sbt プロジェクト セクションで、次のオプションを設定できます。

項目 | 説明 |
|---|---|
ダウンロード | sbt からプロジェクトを再ロードするときにソースをダウンロードするためのオプションを 1 つ選択します。
|
Open cross-compiled Scala 3 / Scala 2 projects as Scala 2 | Scala 2 と Scala 3 の両方に対してクロスコンパイルされたプロジェクトを Scala 2 として開くには、このオプションを選択します。 |
Use separate compiler output paths | sbt で使用されるものとは異なるクラスファイルディレクトリをコンパイルに使用するには、このオプションを選択します。 |
メインリソースとテストリソースに別々のモジュールを作成する | メインソースとテストソースを別々のモジュールに整理するには、このオプションを選択します。 詳細については、 ブログ投稿(英語)を参照してください。 |
sbt shell | チェックボックスを使用して、プロジェクトの再ロードとビルドでの sbt シェルの使用を制御します。 |
Generate managed sources during project sync | プロジェクトの同期中にプロジェクトで有効になっているソースジェネレーターによって管理されるソースを生成するように sbt に指示します (例: sbt-buildinfo、abt-twirl、その他の同様の sbt プラグイン)。 アクションとしても利用できます。 |
Enable debugging | このオプションを選択すると、sbt シェルがデバッグ可能なプロセスとして起動します。 これにより、sbt シェルで実行されている sbt プラグインのコードとテストをデバッグできます。 |
最も一般的な sbt の問題と回避策を確認するには、 sbt のトラブルシューティングセクションを参照してください。
sbt の Package Checker サポート
Package Checker は、サードパーティ依存関係に既知の脆弱性がないかをチェックするプラグインです。 利用可能な場合は、安全なバージョンを提案し、コードの安全性を高めます。 また、ソースコードをスキャンして脆弱な API 呼び出しを検出し、最も重大な問題をハイライトします。 このプラグインは IntelliJ IDEA にバンドルされています。
Package Checker で検出された問題は、 タブに報告されます。 このプラグインは も提供します。
ここでは、Package Checker が org.apache.commons % commons.io % 1.3.2 の脆弱性をどのように説明するかを確認できます。

詳細は、 脆弱で悪意のある依存関係を見つけるを参照してください。
メインモジュールとテストモジュールを分離する。
Scala プラグインを使用すると、IntelliJ IDEA で sbt プロジェクトを操作するための新しい実験的なモードが追加されました。 有効にすると、メインソースとテストソースが別々のモジュールに整理され、コンパイルと依存関係の管理が改善されます。
個別モジュールモードを有効にする
Ctrl+Alt+S を押して設定を開き、 を選択します。
メインソースとテストソース用に別々のモジュールを作成する オプションを有効にします。

OK をクリックします。 プロジェクトが自動的に再読み込みされ、新しいモジュールが作成されます。
再ロード後、モジュールを参照する各実行構成は、対応するメインモジュールまたはテストモジュールに切り替わります。 まれに、実行構成内のモジュールを自動的に変更できない場合があります。
このような場合は、 実行構成を新しいモジュール命名スキームに更新する アクションを明示的に使用して実行構成を更新できます。 このアクションは、「アクションの検索」メニューの「Ctrl+Shift+A 」を使用するか、メインメニューの「 」に移動することで見つけることができます。

この新しいモードが sbt プロジェクトの構成にどのように役立つかの詳細と例については、JetBrains ブログの sbt プロジェクトの新しいモジュールレイアウト(英語)の記事を参照してください。