sbtプロジェクトをEclipseから使う

■やりたい事、sbtプロジェクト→Eclipseプロジェクト

Scalaでは標準の地位になりつつあるsbt。ただ、Javaユーザーのかなりの部分の人がEclipseを使っていると思うんだけど、そう言う人達にScalaを勧める時に「え?Eclipse使わないの?」とか言われると悲しいので、sbtのプロジェクトをEclipseを使う方法を1つ紹介。

sbtのWikiには3つの方法が紹介されているけど、それの2番。英語が読める人はこれを読めば大体分かるかな。

■環境

  • Eclipse 3.5(別に3.6でも良いと思うけど)
  • Scala plugin (当たり前だけど、お事前に入れておく必要有り)

■手順

Liftを例に取る。sbtのプロジェクト定義ファイル(LiftProject.scala)の最初の方は以下のようになってるけど、

import sbt._
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
val liftVersion = "2.2-RC4"

これを以下のように変える。

import sbt._
import de.element34.sbteclipsify._
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) with Eclipsify {
val liftVersion = "2.2-RC4"

 

次に、<project root>/project/ 以下に plugins というディレクトリを作成。そのpluginsディレクトリの中にMySbtProjectPlugins.scalaという名前(別に何でもいいと思う けど)で以下のようなファイルを作成。

import sbt._
class MySbtProjectPlugins(info: ProjectInfo) extends PluginDefinition(info) {
lazy val eclipse = "de.element34" % "sbt-eclipsify" % "0.7.0"
}

あとは

sbt reload
sbt eclipse

でEclipseのプロジェクトファイル(.project)が作成される。sbt eclipseというのが、sbt-eclipsifyというプラグインで実現される機能。

後は<project root>ディレクトリをEclipseにインポートすればOK。

■TODO

こんな事出来ればいいなー。自分で書こうかなぁ。

  • Eclipse内のコンテキストメニューでsbtのコマンドが呼び出せるといいかもしれない。
  • jettyの起動、終了がサーバーパネルから出来ると良いかも。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です