如何在buildr项目中使用Ruby代码?

时间:2011-08-01 09:34:18

标签: ruby scala clojure buildr

如何在构建器项目中使用Ruby?

我在很多单独的项目中使用过Ruby,JRuby,Java和Clojure。我目前正在使用标准Ruby中的模拟应用程序,我想尝试使用Clojure后端(我喜欢功能代码),以及JRuby gui和测试套件。我还可以看到,将Scala用于未来不同项目的后端。

我想我会为我的项目尝试使用buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点愚蠢,因为该工具旨在统一常见的JVM语言,并在 ruby​​中构建。

有没有人知道如何实现这一目标,除了将输出的jar包含在一个独特的ruby项目中?

2 个答案:

答案 0 :(得分:7)

您对如何使用(J)Ruby代码并不十分具体,因此我将从许多可能的方法中给出一个示例。

让我们创建一个目录结构并将Java和Ruby文件放入其中,

.
├── buildfile
└── src
    └── main
        ├── java
        │   └── Foo.java
        └── ruby
            └── app.rb

的内容为Foo.java,如下所示,

public class Foo {
  public int bar() {
    return 42;
  }
}

和一个简单的app.rb启动脚本,

puts "Foo.bar is #{Java::Foo.new.bar}"

您的buildfile看起来有点像,

VERSION_NUMBER = "1.0.0"

repositories.remote << "http://www.ibiblio.org/maven2/"

JRUBY = "org.jruby:jruby-complete:jar:1.6.3"

define "ruby-example" do
  project.version = VERSION_NUMBER
  project.group = "org.example"

  run.with JRUBY
  run.using :main => ['org.jruby.Main', _(:src, :main, :ruby, "app.rb")]
end

run任务记录在http://buildr.apache.org/more_stuff.html#run

现在您可以通过输入

来运行您的应用程序
$ buildr run

并获得以下输出,

$ buildr run
(in /home/boisvert/tmp/ruby-example, development)
Foo.bar is 42
Completed in 1.884s

答案 1 :(得分:1)

您可以安装buildr to use JRuby