2012-12-15 4 views
3

가 나는 JRuby를 초보자 그리고 난 다음이 단계에게 Heroku에 배포하기 위해 노력하고있어 : https://devcenter.heroku.com/articles/moving-an-existing-rails-app-to-run-on-jrubyheroku의 JRuby on rails 앱에 jar 종속성을 추가하는 방법은 무엇입니까?

하지만 항아리 종속성을 추가 할 수있는 방법을 알아낼 수 없습니다. JFreeChart jars를 사용하고 있으며 JRuby on Rails 앱을 참조하고 있습니다.

모든 조언을 주시면 감사하겠습니다.

답변

1

나는 기본 Heroku가 구성을 사용하여 lib 디렉토리에있는 항아리를 배치하고

require 'java' 
    require 'lib/myjar.jar' 
+0

일반 JRuby 설정에서는 작동하지만 Heroku에서는 작동하지 않습니다. – siuying

2

짧은 대답은,이 시도했지만하지 않은, 당신은 단순히 자신의 병을 추가 할 수 없습니다. jar로 패키징 한 보석을 만들어 앱에서 사용할 수 있습니다.

lib 폴더에 jar가 있다고 가정합니다. 당신은 당신의 애플 리케이션에 콘솔을 실행하려고하면 :

heroku run console 

irb(main):001:0> Dir["lib/*.jar"] 
=> [] 

당신은 당신의 repo에서 제시 한 병에도 불구하고, Heroku가 응용 프로그램 위치 내부에 항아리를 발견 할 것이다. Heroku는 항아리를 제외하는 방식으로 앱을 패키징하는 것 같습니다.

해결 방법으로 항아리를 보석으로 추출하고 Gemfile에 평소대로 보석을 추가합니다.

적절한 해결책은 Heroku에서 티켓을 만들어서 빌드 팩을 수정하도록 요청할 수 있습니다.

+0

"항아리를 보석으로 뽑아 내고 보석을 평소처럼 Gemfile에 추가하는 것"은 무엇을 의미합니까? Ruby 코드에서 내부 Java 클래스를 참조한다는 의미입니까? 나는 아이디어를 얻지 않는 것 같다. – yagooar

+0

rubygems에 jar를 패키지 할 수 있으며, JRuby는 JAR과 클래스를 로컬에서 존재하는 것처럼 읽을 수 있습니다. 예를 들어 https://github.com/siuying/charlock_holmes-jruby를 참조 할 수 있습니다. – siuying