【问题标题】:Trying to install Java on a Rails Heroku app尝试在 Rails Heroku 应用程序上安装 Java
【发布时间】:2014-12-03 17:28:52
【问题描述】:

我的 Rails 应用程序的一部分逻辑依赖于旧版 Java 代码。它通过 shell 命令运行代码:javac whatever,然后是java whatever。但是,部署到 Heroku 后,请求失败,因为它找不到 javacjava

在 Rails 应用程序中安装 Java 的最佳方式是什么?我尝试使用多构建包解决方案,这个 .buildpacks:

https://github.com/heroku/heroku-buildpack-ruby.git
https://github.com/heroku/heroku-buildpack-java.git

但我收到此错误:

=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-java.git

 !     Push rejected, failed to compile Multipack app

我尝试 fork Ruby buildpack 并直接从那里安装 Java,但我真的不知道我在做什么。有什么想法吗?

【问题讨论】:

    标签: java ruby-on-rails heroku


    【解决方案1】:

    尝试使用heroku-buildpack-jvm-common 而不是Java buildpack。所以你的.buildpacks 文件将如下所示:

    https://github.com/heroku/heroku-buildpack-jvm-common.git
    https://github.com/heroku/heroku-buildpack-ruby.git
    

    如果在编译/构建时需要javacjava,将JVM 放在Ruby 之前可能是个好主意。

    JVM buildpack 与 Java buildpack 基本相同,但不安装 Maven,因此不需要pom.xml 文件。我认为缺少pom.xml 是您出现该错误的原因。

    编辑

    在现代,你也可以跑:

    $ heroku buildpacks:add heroku/jvm
    $ heroku buildpacks:add heroku/ruby
    

    【讨论】:

    • 我实际上询问了 Heroku 的人(他们几乎立即做出了回应,我对此感到惊讶) - 事实证明,只有将 Java 放在 first 才有效。 -_- 不知道为什么。这是一个好主意(并确认它有效)。谢谢!
    • 只有在 Ruby 的编译/构建阶段需要 Java 时,顺序才重要。在这种情况下,由于Java部分失败,我怀疑是缺少pom.xml
    • 也很有可能。 8-) 我知道 Heroku 的人说 Java 必须是第一位的。
    猜你喜欢
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2013-05-25
    相关资源
    最近更新 更多