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

标签 ruby scala clojure buildr

如何在 buildr 项目中使用 Ruby?

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

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

除了将输出的 jar 包含在一个独特的、仅限 ruby​​ 的项目中,有谁知道您将如何实现这一点?

最佳答案

您对于如何使用您的 (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

关于ruby - 如何在 buildr 项目中使用 Ruby 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896546/

相关文章:

clojure - 是否应将延迟视为不可变值?

ruby - 在方法中访问局部变量

scala - 删除 Spark 数据框中的所有重复记录

clojure读取大文本文件并计算出现次数

scala - 无法调用接受并返回特征中自引用参数化类型对象的函数

java - Scala 编译器错误 : java. lang.AssertionError:断言失败(即使在 Eclipse 中指定了项目依赖项)

mysql - 无法开始使用 clojure kORMa

ruby - 要求相对路径

Ruby - 如何用数组值反转哈希?

ruby - *$< 在 Ruby 中是什么意思?