DrP*_*per 5 ruby scala clojure buildr
如何在构建器项目中使用Ruby?
我在很多单独的项目中使用过Ruby,JRuby,Java和Clojure.我目前正在使用标准Ruby中的模拟应用程序,我想尝试使用Clojure后端(我喜欢功能代码),以及JRuby gui和测试套件.我还可以看到,将Scala用作未来不同项目的后端.
我想我会为我的项目尝试buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目本身内部使用JRuby代码!这看起来有点愚蠢,因为该工具旨在统一常见的JVM语言并且是用 ruby 构建的.
有没有人知道如何实现这一目标,除了将输出的jar包含在一个独特的红宝石项目中?
您对如何使用(J)Ruby代码并不十分具体,因此我将从许多可能的方法中给出一个示例.
让我们创建一个目录结构并将Java和Ruby文件放入其中,
.
??? buildfile
??? src
??? main
??? java
? ??? Foo.java
??? ruby
??? app.rb
Run Code Online (Sandbox Code Playgroud)
内容Foo.java如下,
public class Foo {
public int bar() {
return 42;
}
}
Run Code Online (Sandbox Code Playgroud)
和一个简单的app.rb启动脚本,
puts "Foo.bar is #{Java::Foo.new.bar}"
Run Code Online (Sandbox Code Playgroud)
你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 Code Online (Sandbox Code Playgroud)
(该run任务记录在http://buildr.apache.org/more_stuff.html#run)
现在您可以通过键入来运行您的应用程序,
$ buildr run
Run Code Online (Sandbox Code Playgroud)
并获得以下输出,
$ buildr run
(in /home/boisvert/tmp/ruby-example, development)
Foo.bar is 42
Completed in 1.884s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |