2016-09-13 2 views
0

내 설치가인 IntelliJ, JRebel, 메이븐와 JEE 6 응용 프로그램

  • IDE : 인 IntelliJ
  • 응용 프로그램 : 메이븐
  • 핫 코드 : JEE6 귀하고 WAR 모듈
  • 빌드와 -Replacement : JRebel
  • 응용 프로그램 - 서버 : 글래스 피시 3.1

나는 응용 프로그램을 구성 IntelliJ에서 귀가 배치되는 방식으로 이어 "대상"폴더이 대상/클래스/ 목표처럼 보인다/표시/appWeb-버전 Snapshot.war/ 대상/표시/lib 디렉토리/ 목표/기본 구성에서/META-INF

를 표시 JRebel은 클래스/폴더의 변경 사항을 수신합니다. 웹 모듈에서 무언가를 변경하고이를 빌드하면 클래스는 appWeb/target/classes /에서만 업데이트되지만 appEar/target/appEar/appWeb-version-Snapshot.war /에서는 업데이트되지 않습니다.

이러한 클래스를 업데이트하려면 프로젝트를 빌드 한 후 IntelliJ에서 "빌드 아티팩트"를 선택해야합니다.

내가 핫 코드 교체를 위해 다음 단계를 수행해야, 요약하면 :

  1. (한 번) 구성 JRebel을 올바르게. 이 모든 절차가 나타납니다
  2. 만들기 프로젝트
  3. 빌드 유물

나에게 너무 복잡합니다. 누구나 IntelliJ/Maven/Glassfish/JEE/JRebel을 올바르게 설정하는 방법을 알고 있습니까? 모든 도구가 들어있는 예제를 찾지 못했습니다. 두 가지가 아니라 코드 교체에 대해 하나의 조치 만 취하고 싶습니다.

답변

1

프로젝트 아티팩트 설정에 "build on make"체크 박스가 있습니다. 컴파일 할 때 아티팩트를 항상 재현합니다. 그러나 JRebel은 rebel.xml을 기반으로 클래스 파일과 리소스를 읽는 응용 프로그램을 다시 매핑해야하므로 rebel.xml을 다시 작성하여 컴파일 될 클래스를 찾은 다음 아티팩트를 빌드 한 후 최종 위치를 찾지 않아야합니다.

0

매번 인공물을 빌드해야하는 이유는 무엇입니까?

전쟁에는 /target/classes 폴더의 클래스에 매핑되는 rebel.xml이 포함되어야합니다.

상기 클래스를 변경하면 서버는 해당 클래스의 변경 사항을로드하는 것을 알고 있습니다.

rebel.xml 클래스 경로가 /target/classes을 가리킨다 고 가정하면 변경 사항을 확인하기 위해서만 프로젝트를 빌드하면됩니다.

+0

인공 지능을 구축하여 IntelliJ가 폭발 된 전쟁의 내용을 귀/목표 /로 복사해야합니다. 여기에서 응용 프로그램 서버가 클래스를 선택합니다. – Soccertrash

+0

프로젝트를 빌드 한 후에 변경 사항을 다시로드하지 않으면 rebel.xml 구성에 문제가있을 수 있습니다. [email protected]에 편지를 작성하고 메일에 jrebel 로그를 첨부 할 수 있습니까? 로그를 보내는 방법 : https : // manuals.zeroturnaround.com/jrebel/misc/sendinglogs.html –

+0

JRebel이 잘 작동합니다. 하지만 먼저 프로젝트를 만들고 나중에 "인공물 만들기"를해야합니다. 따라서 JEE 응용 프로그램을 위해 IntelliJ에서 수행 할 수있는 좀 더 우아한 프로젝트 설정이 있다고 가정합니다. 게다가 그것은 여전히 ​​maven과 함께 작동해야합니다. – Soccertrash