web-dev-qa-db-ja.com

IntelliJ IdeaでSBTプロジェクトを作成する方法は?

Scala/LiftWeb/Sbtの開発を始めたばかりで、IntelliJ IdeaにSbtプロジェクトをインポートしたいと思います。実際、2つの異なる方法でプロジェクトをインポートできました。

1)Mavenを使用。 Mavenプロジェクトを作成し、その上でSbtプロジェクトを作成し、それをIntelliJにインポートしました。その後、簡単に起動したり、桟橋サーバーを停止したり、他のことを行うことができました。しかし、それは私が望むものではありません。私は同じことをしたい、ただMavenなし。それは私を導く

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

誰でもこれで私を助けることができますか?

144
ksemeks

プロジェクトを作成する基本的な方法は3つあります。IntelliJの最新バージョンはsbtプロジェクトをそのままインポートできます。それ以外の場合、sbtプラグインを使用してIntelliJプロジェクトを生成するか、IntelliJ Scalaプラグインを使用してsbt事業。基本的な機能は両方のソリューションを使用してすぐに機能します。一部の複雑なビルドでは問題が発生する可能性があるため、他のツールを試して、機能するかどうかを確認してください。

IntelliJ

IntelliJ IDEAは最近非常に良くなっています。現在のバージョン(14.0.2)は、Scalaプラグインですぐに使用できるsbtプロジェクトをサポートします。プラグインをインストールするだけで、Scala/sbtプロジェクトを問題なく開くことができるはずです。

Scala plugin under Plugins in Preferences

プラグインを使用して、sbtプロジェクトをポイントするだけで、IDEAはその種のプロジェクトを開くためのウィザードを提供します。

Import sbt project

IntelliJ Scalaプラグイン

IntelliJプラグインはここにあります http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA またはIDE内から直接インストールできます_ [設定]-> [プラグイン]ダイアログを使用。その後、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 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")

Sbtでgen-ideaを使用して、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
 ...

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

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

今のところ、私はこれを手作業で行います。とても簡単です。

  1. SBTを使用してプロジェクトを作成する
  2. 同じルートパスで新しいIDEAプロジェクトを作成します
  3. 同じルートパスでモジュールを作成する
  4. Src/main/scalaをモジュールのsrcパスとして設定します
  5. モジュールのテストパスとしてsrc/test/scalaを設定します
  6. Scala-library.jarをライブラリとして追加
  7. モジュールライブラリ内のjarディレクトリとしてlib(存在する場合)を追加します。
  8. Lib_managed/compile(存在する場合)をモジュールライブラリ内のjarディレクトリとして追加します
  9. Lib_managed/test(存在する場合)をモジュールライブラリ内のjarディレクトリとして追加します

それは記憶からです。自動化された方が良いでしょうが、現在のように大したことではありません。

注意点の1つ:上記のアプローチは、デフォルトではlib_managedに依存関係をコピーしないため、新しい学校のsbt、つまりバージョン0.10以降ではうまく機能しません。あなたは付け加えられます

retrieveManaged := true

build.sbtに追加して、依存関係をlib_managedにコピーします。

11
Synesso

Tempus fugitとIntelliJ IDEAは、最近非常に良くなっています。結局2015年ですね。

そうは言っても、 IntelliJの最新バージョンIDEA 14.0.2 は、 Scalaプラグイン ですぐに使えるsbtプロジェクトをサポートします。プラグインをインストールするだけで、Scala/sbtプロジェクトを問題なく開くことができます。

Scala plugin under Plugins in Preferences

私は執筆時点で1.2.67.6.EAPであるプラグインの早期アクセスバージョンを使用しています。

プラグインを使用してsbtプロジェクトをポイントするだけで、IDEAはその種のプロジェクトを開くためのウィザードを提供します。

Import sbt project

Sbt 0.12.4のsbt-ideaについて

Sbt0.12.4の場合、システム全体のプラグイン構成ファイル-~/.sbt/plugins/build.sbtまたはPROJECT_DIR/project/plugins.sbt-には次の行が必要です。

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

sbt gen-ideaを実行して、IDEAプロジェクトファイルを生成します。

sbt-ideaプラグインWebサイト を読んで最新情報を入手してください。また、私のブログエントリ sbtベースのプロジェクトをIntelliJにインポートするIDEA 13(sbt-idea、Scala 2.11およびsbt 0.12を使用) が便利です。

7
Jacek Laskowski

sbt 0.7の場合

このページの他の場所での回答 を参照してください。

sbt 0.10の場合

Ismaelのsbt-ideaのクローンとビルド:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

まだ持っていない場合は、sbtプラグインのlibディレクトリを作成します

mkdir -p  ~/.sbt/plugins/lib

ステップ1で作成したjarをここにコピーします

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

Sbtを再起動またはリロードすると、gen-idea(またはintelliJのソースとjavadocも必要な場合はgen-idea with-classifiers)を実行できます。

出典: メッセージグループに関するタッカーの提案

IntelliJ IDEA 13.x自体

最近では、IDEAでSBTベースのプロジェクトを開くことができます。必要なプロジェクトとモジュールを作成し、ビルドスクリプトを変更するたびに依存関係を最新の状態に保ちます。

5
opyate

私はこのすべての痛みを経験しました。許容できる環境を整えようと何日も費やし、しばらくの間ENSIME、SBT、JRebelが私の開発環境になるという結論に達しました。はい、それはEmacsに戻りますが、ENSEMEはそれをリファクタリング、デバッグサポート、ナビゲーションなどを備えたビットまたはアイデアに変えます。scalaプラグインを除いて私たちが持っている最高の仕事です。

Scala開発環境がスナッフ(EclipseまたはIntelliJ)に到達するまで、気にしません。バグが多すぎます。

リフトサイトの説明を参照してください。

http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

そのスレッド内には、IntelliJのHOWTOへのリンクがありますが、それは機能しますが、多くの問題があり、IntelliJの有用性が少し低くなります。

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/

2
andyczerwonka

回答は2014年の古いものです。IntelliJ 13.xでは、プラグインScalaはver 0.41.2(SBTを含む)です。

SBTバージョンは0.13.5(端末:sbt sbtVersion

プロジェクトのルートフォルダーに移動し、ターミナルに入力します

sbt idea

2つの新しい非表示フォルダー。ideaおよび。idea_modulesが表示されます。

次に、IntelliJで、[ファイル]> [開く]>プロジェクトを選択します。問題なくプロジェクトを開くはずです。

2
Raymond Chenon

SBTプロジェクトの作成を開始する前に、Scalaプラグインがダウンロードされ、IntelliJ IDEAで有効になっていることを確認してください。

以下のリンクは、あなたが知る必要があるすべてを説明しています。

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html

0
Prasad