Как я могу использовать код Ruby в проекте buildr? - PullRequest
5 голосов
/ 01 августа 2011

Как использовать Ruby в проекте buildr?

Я использовал Ruby, JRuby, Java и Clojure в нескольких отдельных проектах. В настоящее время я работаю над симуляционным приложением в моем стандартном Ruby, которое я хотел попробовать сделать с бэкэндом Clojure (мне нравится функциональный код), а также с графическим интерфейсом и набором тестов JRuby. В будущем я мог бы также использовать, скажем, Scala для бэкенда в другом проекте.

Я думаю, что собираюсь попробовать buildr (http://buildr.apache.org/)) для моего проекта, но я заметил, что buildr, похоже, не настроен на использование кода JRuby внутри самого проекта! Это немного глупо, Видя, как инструмент предназначен для объединения общих языков JVM и встроен в ruby.

Кто-нибудь знает, как бы вы достигли этого, если не включать выводимый jar в отдельный проект только для ruby?

Ответы [ 2 ]

7 голосов
/ 01 августа 2011

Вы не очень точно знаете, как вы хотите использовать свой код (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 голос
/ 01 августа 2011

Вы можете установить buildr для использования JRuby .

...