前回、IntelliJ IDEA で sbt プロジェクトを扱う方法を見ましたが、今回はそれの Eclipse 版。 ただし、Eclipse は Scala プラグインである Scala IDE for Eclipse をインストールしても(今のところ) sbt プロジェクトをそのままインポートすることができないようなので、sbt に Eclipse プラグインをインストール(1行のテキスト・ファイルを配置するだけ)して Eclipse の設定ファイルを生成する必要があります。 また、Eclipse から sbt プロジェクトを新規作成することはできません。 まぁ、どちらもそのうちサポートされるかも知れませんが。
ちなみに Scala IDE for Eclipse をインストールすると、ScalaTest は JUnit みたいに使うことができるようです。
内容
- Scala IDE for Eclipse (Scala の Eclipse プラグイン)をインストールする
- Eclipse で文字エンコーディングを設定する
- sbt での Eclipse プロジェクト設定ファイルの生成
- Eclipse へ sbt プロジェクトをインポートする
- git...
Scala IDE for Eclipse をインストールする
Scala IDE for Eclipse は以下のアップデートサイトからインストールできます(Scala 2.11.6):http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site
最近 Eclipse のプラグインをインストールしてなかったので(というか Eclipse 使ってなかったので)、思い出すためにインストール方法を見ていきましょう。 まず
[メニューバー] → [Help] → [Install New Software...]
から「Install」ダイアログを開いて以下の手順を実行します:


リポジトリを登録しないといけないのがちょこっと面倒。 まぁ、URL をコピペするだけだけど。
Eclipse で文字エンコーディングを設定する
sbt に直接関係ないんだけど、IntelliJ IDEA でやったように IDE の文字エンコーディングを設定する方法を見ておきます。設定するには、「Eclipse で設定と言えば・・・」の
[メニューバー] → [Window] → [Preferences]
で「Preferences」ダイアログを開いて、以下のように設定します:

sbt から Eclipse プロジェクトの設定ファイルを生成する
(今のところ)Eclipse から直接 sbt プロジェクトは読み込めないようで、まずは sbt に Eclipse プラグインをインストールして、「sbt eclipse」コマンドによって Eclipse の設定ファイルを生成してあげないといけません。 まぁ、「sbt に Eclipse プラグインをインストール」って言っても大して難しくありません。 このプラグインは- typesafe 「sbteclipse」
で開発されてます。
sbt に Eclipse プラグインをインストール
sbt プロジェクトのルート・ディレクトリ下にある「project」ディレクトリ(なければ作成)に以下のような内容の plugins.sbt ファイルを作成します:addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "3.0.0")
プラグインのインストールと言ってもこれだけ。
Eclipse の設定ファイルを生成する
次は sbt から Eclipse の設定ファイルを生成します。 sbt プロジェクトのルート・ディレクトリで「sbt eclipse」コマンドを実行します> sbt eclipse
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading project definition from C:\Users\...\workspace\scala\sbt-test\project
...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[info] Successfully created Eclipse project files for project(s):
[info] sbt-test
実行が成功すると、以下の太字のファイル、ディレクトリが生成されているはずです:
- 《プロジェクト・ルート》
- build.sbt
- project/
- plugins.sbt
- src/
- target/
- .project
- .classpath
- .settings/
特に何ということはないですね。
Eclipse へ sbt プロジェクトをインポートする
最後は sbt プロジェクトを Eclipse へ読み込みます。 プロジェクトの型として「sbt プロジェクト」ってのはないようなので、「Existing Projects into Workspace」で読み込みます。[メニューバー] → [File] → [Import...]
から「Import」ダイアログを開いて、以下の手順を実行します:


これも大して難しくないですな。
git...
この sbt × Eclipse プロジェクトを git で管理する場合、ローカル PC だけで管理するならクラスファイルなどが配置される「bin」ディレクトリを git 無視すれば OK(sbt がクラスファイル等を配置するすべき 「target」 ディレクトリも git 無視)。 ただし、github など、複数人で開発するプロジェクトで git 管理する場合は、「.classpath」ファイルにローカルのパスががっつりハードコーディングされてるので結構まずいみたいです。 しかたないので sbt の Eclipse プラグインが生成する設定ファイルは git 無視して、各 PC で「sbt eclipse」して Eclipse へインポートするしかないかなと。 ということで .gitignore はこんな感じじゃないでしょうかね:target/ .project .classpath .settings/ bin/
生成される .classpath
sbt の Eclipse プラグインで生成される .classpath を見ると、コンパイルによって生成されるクラスファイルは「bin」ディレクトリ下に配置され、sbt でデフォルトの「target」ディレクトリ下には配置されません。 ちょっと設定すれば sbt と同じように配置することもできますが、そうなっていないのは何故なんでしょうかね。 Eclipse のコンパイラが特殊なので、Eclipse のコンパイラが生成するクラスファイルと sbt が生成するクラスファイルを分けときたい、とかあるのかな? あと、src/main/java とか src/test/resouces とかのディレクトリが自動生成されるけど、sbt プロジェクト(というか Scala プロジェクト)ってそんなに Java コード書くもんなのかな? 自動生成するのは scala コード用のディレクトリだけにして、後は必要になったら手動で作成するってのでいいと思うんだけど。
Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)
- 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ
- 出版社/メーカー: インプレス
- 発売日: 2015/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る

- 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 235回
- この商品を含むブログ (46件) を見る