2010-05-16 2 views
10

어떤 Java 웹 응용 프로그램 프레임 워크가 "핫 리로드"기능을 제공하는지 알고 싶습니다. 즉, 응용 프로그램을 개발하고 서버에 "거의 즉시"(즉, 몇 초 이내에) 재배포 할 수 있습니다.핫 로딩을 제공하는 Java 웹 프레임 워크는 무엇입니까?

자바 세계에서 Play!은 기본적으로이 작업을 수행하지만 내가 찾고있는 것은보다 철저한 목록입니다.

내가 알고있는 다른 예제에는 Nuxeo WebEngine, Eclipse와 올바른 플러그인 또는 Python 세계에서 Django와 Pylons (--reload 옵션 사용시)를 사용한다고 가정합니다.

답변

10

사람이 몇 개월 후 관심이있을 경우

할 수 있습니다 configure jetty 뜨거운 컴파일 된 클래스를 배포 할 수 있도록 (일식 + NetBeans는 저장 기능에 컴파일이). 받는다는하면 pom.xml 파일에서이 설정 한 후 mvn jetty:run을 입력 할 수 있습니다 :이 jrebel를 사용하지 않고 수행 할 수 있으며, 그 의미

 <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>maven-jetty-plugin</artifactId> 
      <version>${jetty.version}</version> 
      <configuration> 
       <scanTargets> 
        <scanTarget>target/classes/</scanTarget> 
       </scanTargets> 
       <scanIntervalSeconds>1</scanIntervalSeconds> 
      </configuration> 
     </plugin> 

다음 IDE + 저장 + 브라우저로 이동의 변화를 할 + F5 => 끝났습니다!

해당 기능을 사용하십시오. wicket 또는 vaadin은 배포가 가능합니다. (다른 것들도 마찬가지입니다.)

+0

이 작업을 수행 할 수있는 방법이 아닌 방법이 있습니까? – nilskp

+0

나는 그렇게 생각한다. 커맨드 라인과 자바를 통해 – Karussell

0

이클립스에서 struts (2) 응용 프로그램을 개발할 때 성공적으로 컴파일 된 파일을 저장하자마자 자동으로 다시로드됩니다. 당신이 POJOs을 사용하는 경우

그러나, 세션 대신 EJBs의, Seam framework이 목록에 있어야

+0

이것은 IDE에 의해 트리거되는 응용 프로그램 서버에서 응용 프로그램을 자동으로 재배포 한 것입니다. –

0

.. 조금 성가신마다 다시로드에 손실됩니다.

2

Tapestry 5는 Seam과 마찬가지로 단일 클래스/페이지 변경을 신속하게 배포합니다.

15

내가 아는 한, jrebel을 사용하는 경우 거의 모든 자바 프레임 워크에서 최신 재로드를 수행 할 수 있습니다. 일부 프레임 워크는 다른 답변에서 언급했듯이 일종의 핫 배포가 내장되어 있습니다.

+1

Pitty 이것은 표준 J2EE 개발의 파티가 아닙니다. – mdma

1

저는 이것을 개발 목적으로하고 생산을 위해서가 아니라고 가정 할 것입니다. (Java 용 프로덕션에서 핫 로딩 == 큰 시간 실패). 매우 드물게 상용 제품을 출시 할 예정이지만, 자바 개발을 가속화하기 위해 핫 리로딩을 원할 경우 실제로 원하는 것은 JRebel입니다. 핫 리로딩은 당신이 부담없이 노력할 것입니다.

: 무엇이든지간에 Java 응용 프로그램에 대해 JRebel (또는 모든 핫 전개)을 사용하지 마십시오.

+0

핫 리로드의 정의가 나쁜 것은 무엇입니까? [1. 전체 서버를 다시 시작하지 않고 응용 프로그램을 다시로드합니다 (여러 응용 프로그램이 포함될 수 있음). 2. 파일이 변경되면 자동으로 # 1을 수행합니다. ] 물론, 프로덕션에서는 # 2없이 할 수 있지만, # 1 –

0

자바 (컨트롤러, 모델) 코드를 편집하고 브라우저를 새로 고침하여 변경 사항을 즉시보고 웹 서버를 다시 시작하지 않으려면 scooter을 사용할 수 있습니다. 그건 그렇고, 내장 된 도구 파일 브라우저를 사용하면 브라우저를 통해 코드를 편집 (컴파일) 할 수 있습니다. 브라우저는 IDE로 작동하지 않을 수도 있지만 앱을 원격으로 개발하는 데 도움이됩니다.

0

블록에 새로운 아이가 있습니다. RelProxy는 오픈 소스이므로 JRebel처럼 고급 버전이 아니지만 런타임에 코드의 하위 집합을 자유롭게 변경하고 성능 저하없이 거의 다시로드 할 수 있습니다 원하는 경우 개발 및 제작시 컨텍스트 재로드 (세션 손실 없음)가 필요합니다.