[解決済み] IntelliJ IdeaでSBTプロジェクトを作成する方法は?
質問
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)
// ...
}
関連
-
[解決済み】Spark Exponential Moving Averageについて
-
[解決済み] Scala underscore - ERROR: 展開された関数のパラメータ型が見つかりません。
-
[解決済み] Spark Implicit $ for DataFrame(データフレーム用暗黙の$)。
-
[解決済み] scalaのforeachループ
-
[解決済み] IntelliJのインスペクションで「シンボルを解決できない」と表示されたが、コードはコンパイルされる
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み] IntelliJ - Javaプロジェクト/モジュールをMavenプロジェクト/モジュールに変換する
-
[解決済み】IntelliJ IDEAプロジェクトに外部jar(lib/*.jar)を追加するための正しい方法
-
[解決済み】IntelliJ IDEAのデフォルトJDKを変更する方法は?
-
[解決済み】Scalaでケースクラスのインスタンスをクローンして、1つのフィールドだけを変更するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Spark - アプリの投稿時に「設定にマスターURLが設定されている必要があります」というエラーが発生する
-
[解決済み] Scalaでステートメントの間にN秒待つには?
-
[解決済み] Sparkです。CoarseGrainedSchedulerが見つかりませんでした。
-
[解決済み] ScalaのSeqへのアペンド
-
[解決済み] Scalaでループから抜け出すにはどうしたらいいですか?
-
[解決済み] AWSのためのScala SDKまたはインターフェースはありますか?
-
[解決済み] Seq[Future[Person]]ではなく、Future[Seq[Person]]を取得する方法
-
[解決済み] NoClassDefFoundError: org/apache/hadoop/fs/StreamCapabilities (s3データをsparkで読み込む際に発生します。
-
[解決済み] Scalaで「:+」は何を意味するのか
-
[解決済み】Scalaでリスト内のアイテムを取得する?