【问题标题】:How do I package properly with JRuby?如何使用 JRuby 正确打包?
【发布时间】:2021-07-07 21:20:00
【问题描述】:

我正在编写一个使用 JRuby 的项目,我希望能够在一个命令中完成三件事,在克隆存储库后立即完成。

  1. 安装 ruby​​gem 依赖项。
  2. 安装 maven 依赖项。
  3. 将所有内容打包到一个独立的 jar 中,包括 JRuby。

实现这一目标的最简单、最直接的方法是什么?我可能可以在我的 pom.xml 中使用自定义构建命令,但似乎其他人以前一定想这样做。我不想弄乱一个通过 maven 下载东西然后将我的 ruby​​ 代码推入 ruby​​-complete.jar 的 shell 脚本,在“java -jar ruby​​-complete.jar -S gem install”我的 gem 之后。我想要一个简单的声明性文件,上面写着:“这些是依赖项,现在解析我并弄清楚如何获得 cheshircat 想要的东西。”

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

【问题讨论】:

    标签: java ruby maven jruby


    【解决方案1】:

    我会看一下扭矩箱 jruby-maven-plugins。我在工作中使用它们来完成您列出的三个要求中的两个:

    1. 使用 gem-maven-plugin 安装 ruby​​gem 依赖项
    2. “安装 maven 插件”就像任何其他插件一样,因为它是 maven 并且 maven 正在驱动构建和打包。

    gems 安装到项目的 ./target/rubygems 目录中。

    我相信您可以使用 maven-jar-plugin 制作任何您想要的东西。

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

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

    【讨论】:

      【解决方案2】:

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

      https://github.com/jruby/warbler

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

      它不需要任何额外的声明性配置,它只使用你已经拥有的东西,比如你的 Gemfile。

      您可能需要将 maven 作为额外步骤,但您可以尝试向莺人寻求建议。

      【讨论】:

      • 如何联系莺人?
      • 你不要......他们很忙 - 尝试阅读 README/wiki :) !
      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 2018-02-17
      • 1970-01-01
      相关资源
      最近更新 更多