从 github尝试我的sbt 插件。它现在非常简单,但它应该下载 jruby jar 并允许您在编译之前调用 .rb 文件。
该插件的内容非常简单:
import sbt._
object SbtJRuby extends Plugin {
object SbtJRubySettings {
lazy val settings = Seq(Keys.commands += jirb, tx, jrubyFile := file("fnord.rb"))
}
def jirb = Command.args("jirb", "<launch jirb>") { (state, args) =>
org.jruby.Main.main(List("-S", "jirb").toArray[String])
state
}
val jruby = TaskKey[Unit]("jruby", "run a jruby file")
val jrubyFile = SettingKey[File]("jruby-file", "path to file to run with JRuby")
val tx = jruby <<= (jrubyFile, Keys.baseDirectory) map { (f: File, b: File) =>
val rb = (b / f.toString).toString
// println("jruby with " + rb)
org.jruby.Main.main(List(rb).toArray[String])
}
}
实际上,它所做的只是使用您传入的 rb 文件的名称调用 jruby jar 文件。当然,将 jruby 本身添加为托管依赖项:
libraryDependencies ++= Seq(
"org.jruby" % "jruby-complete" % "1.6.5"
)
它还向 Scala 控制台添加了一个“jirb”命令,让您进入 jirb 会话。