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の起動、終了がサーバーパネルから出来ると良いかも。