2008-09-24 6 views
11

기본적으로 배포 컴퓨터에 배포 할 수있는 유일한 파일은 JAR 파일입니다. JRuby를 설치할 수 없으며 Glassfish 또는 Tomcat을 설치할 수 없습니다. Rails 애플리케이션을 Java VM JAR 파일로 컴파일 할 수 있습니까?

은 내가

c:\my_server> java rails_app.jar 

을 할 수 있도록 JAR 파일에 (물론, vendored, 레일 포함) 레일 응용 프로그램을 패키지화하고는 JVM 내에서에 WEBrick 또는 잡종을 실행 한 수 있습니까?

+1

을 알려 경우 나는 지금까지 내가 할 수있는, 그것을 시도주는 의도 말해 ...하지만 당신은 아마 그냥 JRuby 단지 (그것을 설치하지 않음)를 포함시킬 수 있습니다. –

+1

이 작업을 수행 했습니까? 나는 그것에 착수하려고 합니다만, 다른 누군가가 알아 낸 것이 있다면 ... –

+0

Nope - 포기하고 완전히 루비가 아닌 해결책을 찾으러갔습니다. –

답변

6

부두를 체크 아웃하는 것이 좋습니다. Embedding Jetty의 프로세스는 놀랍도록 쉽고 현재 jar 파일에서 서블릿을 제공 할 수 있어야합니다. 나는 Ruby/Rails를 사용하지 않았기 때문에 거기에 합병증이 있는지 확실하지 않습니다.

일반적으로 Tomcat에 배치하기 위해 모든 레일 템플릿/모델을 war 파일 내부의 jar 파일에 포함 할 수 있습니까? 그렇다면 임베디드 Jetty가 단일 병에서도 가져올 수 있어야합니다.

1

Mongrel을 JVM에서 실행할 수 있다고 생각하지 않습니다. Tomcat이나 Jetty없이 웹 서버를 돌리려고하는 것은 아마도 가치가있는 것보다 더 많은 문제 일 것입니다. jsight 님의 답변이이 문제에 도움이됩니다. 여기까지 가면, JRuby의 사이트에서 JRuby on Rails in Tomcat을 실행하는 것에 관한 페이지를 볼 수 있습니다.

9

1 년 전에 jruby로 루비 소스를 임베드하고 원하는 모든 것을 하나의 jar 파일에 임베드 한 다음 "java -jar myapp.jar"로 실행하는 방법에 대한 기사를 1 년 전에 썼습니다.

부팅 레일을 만드는 데는 약간의 작업이 필요할 것입니다.하지만 너무 어려워서는 안됩니다. 그리고 위키에있는 무료 jruby 문서를 통해이 기술을 사용하여 jetty + war를 상당히 쉽게 실행할 수 있다고 생각합니다.

기사

은 여기에 있습니다 : http://blog.kesor.net/2007/08/14/jruby-in-a-jar/

1

당신이 JRuby를 메일 링리스트/포럼 (http://xircles.codehaus.org/lists/[email protected])에서이 질문을 시도 할 수 있습니다.

사람이 같은 일을했을 또 다른 장소는 글래스 피쉬 메일 링리스트

그러나 당신이 할 수있는 또 다른 한가지는 윈스턴 임베드 서블릿 컨테이너와 JRuby를 AND 레일을 묶어서 하나 개의 큰 항아리를 만들 jarjar 사용하는 것입니다에게 있습니다. 당신은 레일 애플리케이션을 포함하는 거대한 단지를 만들기 위해 ant 빌드 파일을 만들 수있을 것입니다. 이 접근 방식을 사용하는 한 프로젝트는 hudson (https://hudson.dev.java.net/)입니다.이를 수행하는 방법에 대한 정보를 얻을 수 있습니다.

BR,
~

+0

jarjar가 항아리를 폭발시키고 클래스를 압축하므로 jarjar 대신 one-jar를 사용할 것을 제안합니다. 한 병은 항아리를 그대로 남겨 둡니다. – Evgeny

3
그것은 조금 일자 할 수있다

하지만 닉 SIEGER의 JRuby를 중 하나가 얼마 전에 wrote about warbler 기여자.

Warbler은 Rails 앱을 .war 파일로 패키징하기위한 것입니다. 지금 나는 큰 자바 녀석이 아니기 때문에 .jar 제한이 어디에서 오는지 모르겠습니다. 전쟁 파일은 항아리와 유사하지만 전체 웹 사이트 또는 뭔가를위한 파일입니다.

최악의 경우, JRuby wiki에는 Java 아키텍처에서 실행할 Rails 응용 프로그램의 패키징 상태에 대해 뭔가있는 것이 있습니다. 그것에 대한 정보를 얻는 것이 가장 좋습니다.

관련 문제