プロジェクトの作成方法には3つの基本的な方法があります。最新バージョンのIntelliJはそのままsbtプロジェクトをインポートできます。それ以外の場合は、sbtプラグインを使用してIntelliJプロジェクトを生成するか、IntelliJ Scalaプラグインを使用してsbtプロジェクトを作成できます。基本的な機能は両方のソリューションを使用してすぐに機能します。一部の複雑なビルドには問題がある可能性があるため、他のツールを試して、機能するかどうかを確認してください。
IntelliJ
IntelliJ IDEAは最近非常に良くなっています。現在のバージョン(14.0.2)は、Scalaプラグインを使用して、追加設定なしでsbtプロジェクトをサポートします。プラグインをインストールするだけで、Scala / sbtプロジェクトを問題なく開くことができるはずです。
プラグインを使用して、sbtプロジェクトをポイントするだけで、IDEAはそのようなプロジェクトを開くためのウィザードを提供します。
IntelliJ Scalaプラグイン
IntelliJプラグインは、http: //confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEAにあり
ます。または、[設定]-> [プラグイン]ダイアログを使用してIDEから直接インストールできます。その後、ファイル->新規プロジェクト-> Scala-> SBTベースを実行できます。IntelliJは基本的なbuild.sbtを生成し、必要な依存関係をダウンロードしてプロジェクトを開きます。
SBTプラグイン
sbtファイルに基づいてアイデアプロジェクトを生成するSBTプラグインは、https://github.com/mpeltonen/sbt-ideaにあります。
SBT 12.0以降および13.0以降
単にに追加addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2")
してくださいbuild.sbt
。追加のリゾルバーは必要ありません。
古いバージョン:
SBT 0.11+
次の行を作成して~/.sbt/plugins/build.sbt
ORに追加しますPROJECT_DIR/project/plugins.sbt
resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")
gen-idea
IDEAプロジェクトファイルを作成するには、sbtで使用します。
デフォルトでは、sbtの分類子(つまり、ソースとjavadocs)とライブラリの依存関係が見つかるとロードされ、IDEAプロジェクトファイルに参照が追加されます。それらをダウンロード/参照したくない場合は、commandを使用してくださいgen-idea no-classifiers no-sbt-classifiers
。
SBT 0.10.1
(プラグインの作者によると、0.10.0 は機能しません!)
以下の行を作成して〜/ .sbt / plugins / build.sbtに追加します。
resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"
gen-idea
IDEAプロジェクトファイルを作成するには、sbtタスクを使用します。
デフォルトでは、sbtの分類子(つまり、ソースとjavadocs)とライブラリの依存関係が見つかるとロードされ、IDEAプロジェクトファイルに参照が追加されます。それらをダウンロード/参照したくない場合は、commandを使用してくださいgen-idea no-classifiers no-sbt-classifiers
。
SBT 0.7
これを使用するには、sbtシェルからこれを実行するだけで、プラグインが外部プログラムとして使用されます。
> *sbtIdeaRepo at http://mpeltonen.github.com/maven/
> *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
...
> update
...
> idea
...
必要に応じて、プロジェクト定義に特性を追加することもできます。
import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
// ...
}