2014-12-03 30 views
1

我的Rails應用程序依靠遺留Java代碼來實現其邏輯。它通過shell命令運行代碼:javac whatever,然後java whatever。但是,在部署到Heroku後,請求失敗,因爲它找不到javacjava試圖在Rails Heroku應用上安裝Java

在Rails應用程序中安裝Java的最佳方式是什麼?我試圖用一個多buildpack的解決方案,與此.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 

我試圖建立該紅寶石buildpack,並直接從那裏安裝Java,但我不真的不知道我在做什麼。有任何想法嗎?

回答

0

嘗試使用heroku-buildpack-jvm-common而不是Java buildpack。所以,你的.buildpacks文件將是這樣的:

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

它可能把JVM一個Ruby的一個前的情況下,在編譯需要javacjava /建造時間是個好主意。

JVM buildpack本質上與Java buildpack相同,但不安裝Maven,因此不需要pom.xml文件。缺少的pom.xml就是爲什麼你得到我認爲的錯誤。

編輯

在當今時代,你還可以運行:

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

我居然問Heroku的人(他們幾乎立即作出反應,這點我很驚訝約) - 原來,它只有在你把Java一個*第一個*的時候才起作用。 - 不知道爲什麼。這是一個好主意(並證實它有效)。謝謝! – Cidolfas 2014-12-04 21:52:06

+0

如果您在Ruby的編譯/構建階段需要Java,順序將會很重要。在這種情況下,由於Java部分失敗,我懷疑這是缺少'pom.xml'。 – codefinger 2014-12-05 14:00:35

+0

相當可能。 8-)我知道Heroku人說Java應該是第一位的。 – Cidolfas 2014-12-07 14:40:29