1. ホーム
  2. scala

[解決済み] IntelliJ IdeaでSBTプロジェクトを作成する方法は?

2022-05-06 06:13:42

質問

Scala/LiftWeb/Sbtの開発を始めたばかりで、IntelliJ IdeaでSbtプロジェクトをインポートしたいのですが、どうすればいいですか? 実際、私は2つの異なる方法でプロジェクトをインポートすることに成功しました。

1)Mavenを使用する。私はMavenプロジェクトを作成し、その上にSbtプロジェクトを作成し、そしてそれをIntelliJでインポートしました。そうすると、jettyサーバーを簡単に起動したり停止したり、他のことをすることができました。 でも、それは私が望んでいることではありません。同じことを、Mavenなしでやりたいんです。 その結果、私は

2)Eclipseで。そこで、新しいSbtプロジェクトを作成した(SbtプロジェクトがWebProjectになるように構成する、私が書いた小さなスクリプトを使った)。そして、sbt-eclipsifyプラグインを使って、プロジェクトをEclipse用に「変換」し、それをIntelliJでインポートしました(既存のソース -> eclipse)。 しかし、問題はここから始まりました。IntelliJのSbtプラグインを動作させることができません。

どなたか教えてください。

どのように解決するのですか?

IntelliJの最新バージョンでは、sbtプロジェクトをそのままインポートできます。そうでない場合は、sbtプラグインを使ってIntelliJプロジェクトを生成するか、IntelliJ Scalaプラグインを使ってsbtプロジェクトを作成することができます。基本的な機能は、両方のソリューションを使ってすぐに動作しますが、一部の複雑なビルドでは問題が発生する可能性があります。

インテリJ

最近、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 内の設定 -> Plugins ダイアログから直接インストールすることもできます。その後、File -> New Project -> Scala -> SBT based を実行すればよいのです。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 または 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 をsbtで実行して、IDEAのプロジェクトファイルを作成します。

デフォルトでは、sbtの分類子(ソースやjavadocsなど)とライブラリの依存関係が見つかれば読み込まれ、IDEAプロジェクトファイルに参照が追加されます。もし、それらをダウンロード、参照したくない場合は、コマンド 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 sbtタスクでIDEAプロジェクトファイルを作成します。

デフォルトでは、sbtの分類子(ソースやjavadocs)とライブラリの依存関係が見つかれば読み込まれ、IDEAプロジェクトファイルへの参照が追加されます。もし、ダウンロードや参照をしたくない場合は、コマンド 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
 ...

また、プロジェクト定義の中で、必要に応じてtraitを追加することもできます。

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}