如何使用JRuby正确打包?

时间:2015-03-23 01:07:55

标签: java ruby maven jruby

我编写了一个使用JRuby的项目,我希望能够在克隆存储库后立即在一个命令中执行三项操作。

  1. 安装rubygem依赖项。
  2. 安装maven依赖项。
  3. 将所有内容打包成一个独立的jar,包括jruby。
  4. 实现这一目标的最简单,最直接的方法是什么?我可能在我的pom.xml中使用自定义构建命令,但似乎其他人之前必须要这样做。我不想搞乱使用通过maven下载内容的shell脚本,然后将我的ruby代码推送到ruby-complete.jar,之后" java -jar ruby​​-complete.jar -S gem install&# 34;我的宝石。我想要一个简单的声明性文件,说:"这些是依赖项,现在解析我并弄清楚如何获得cheshircat想要的东西。"

    有没有办法用maven做到这一点?我已经尝试过jbundler,但它一直给我错误,我已经在多个平台上尝试过了。

2 个答案:

答案 0 :(得分:2)

我会看看torquebox jruby-maven-plugins。我使用它们来完成我列出的三个要求中的两个:

  1. 使用gem-maven-plugin
  2. '安装rubygem依赖项'
  3. '安装maven插件'就像任何其他插件一样,因为它的maven和maven正在推动构建和打包。
  4. 宝石安装到项目的./target/rubygems目录中。

    我相信你可以用maven-jar-plugin将你想要的任何东西都搞砸了。

    我写了一个更详细的解释:

    http://thechurchofautomation.com/java-ruby-interoperability-torquebox-maven-plugins/

答案 1 :(得分:1)

不确定maven依赖项,但总的来说,warbler是你想要将所有内容(包括jruby和gem依赖项)打包到独立jar中的工具。

https://github.com/jruby/warbler

它会像.war一样.jar。如果你的东西看起来不像是一个webapp(没有rack.up文件),那么它就会做一个jar,就像你想要的那样。

它不需要任何额外的声明性配置,它只使用你已经拥有的,就像你的Gemfile一样。

你可能需要做maven作为一个额外的步骤,但你可以尝试向warbler的人寻求建议。