My Rails应用程序依靠传统Java代码来实现其部分逻辑。它通过shell命令运行代码:javac whatever然后运行java whatever。但是,在部署到Heroku后,该请求失败,因为它无法定位javac或java。
javac whatever
java whatever
javac
java
在Rails应用程序中安装Java的最佳方法是什么?我尝试使用带有以下.buildpacks的多buildpack解决方案:
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
我尝试派生Ruby buildpack并从那里直接安装Java,但是我真的不知道我在做什么。有任何想法吗?
尝试使用heroku-buildpack-jvm-common而不是Java buildpack。因此,您的.buildpacks文件将如下所示:
heroku-buildpack-jvm-common
.buildpacks
https://github.com/heroku/heroku-buildpack-jvm-common.git https://github.com/heroku/heroku-buildpack-ruby.git
最好将JVM放在Ruby之前,javac或者java在编译/构建时需要将JVM放在Ruby之前。
JVM buildpack本质上与Java buildpack相同,但是不安装Maven,因此不需要pom.xml文件。缺少的pom.xml是为什么我会得到该错误。
pom.xml
编辑
在现代时代,您还可以运行:
$ heroku buildpacks:add heroku/jvm $ heroku buildpacks:add heroku/ruby