2011-03-29 4 views
3

빌드 시스템으로 디버깅하는 동안 코드의 핫 스와핑을 활성화하는 방법을 알아 내려고하고 있습니다.Java HotSwap with Eclipses and Remote Debugging with Local Machine

<target name="debug_dev" depends="compile" 
    description="Runs development version with the debugger."> 
    <java classname="applets.TabHandler" fork="true" dir="build"> 
     <jvmarg value="-Xdebug" /> 
     <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" /> 
     <classpath refid="compile_classpath" /> 
    </java> 
</target> 

내가 다음 포트 디버깅 잘 작동 8000에 연결하기 위해 Eclipse에서 원격 디버깅 옵션을 사용하지만, 나는 다음과 같은 코드를 편집 할 수 없습니다 :

나는과 같이 디버그 타겟으로 Ant 빌드를 가지고 개미를 사용하기 전에 나는 할 수 있었다. JBoss, Tomcat 및 기타 상황에서 핫 스왑 작업을 수행하는 것이 가능하다는 것을 알고 있지만 위에서 볼 수 있듯이 JVM 호출로 로컬로 프로그램을 실행하고 있습니다.

내 설정에서 이것이 가능한지 아는 사람이 있습니까?

감사합니다.

답변

2

자바 개미 핫스왑은 잘 작동합니다. 이클립스에서 할 필요는 없다.

http://code.google.com/p/hotswap/

+0

나는 이것을 곧 프로젝트에서 시도 할 것이다. 헤즈 업에 감사드립니다. 잠시 동안 Ant에서 디버그를 실행했지만 이클립스 디버그 실행으로 돌아 갔으므로 디버깅 방법과 맞지 않을지 모르겠습니다. 개미 디버그가 작동하지 않으면 시작합니다. – Eric

+0

나는 오늘 그것을 시험해 보았다. Ant 태스크를 통해 JVM의 디버그 인스턴스를 트리거합니다. 그런 다음 원격 디버그 구성을 통해 Eclipse 디버그 클라이언트를 트리거하고 디버그 앤트 작업에 사용 된 것과 동일한 포트 번호를 겨냥합니다. 그런 다음 위와 같이 게시 한 hotswap 프로젝트 페이지에 제공된 예제를 기반으로 Ant 작업을 통해 변경된 내용을 작성하고 핫 스왑을 시작했습니다. 우수한! 아쉽게도 hotswap 작업이 호출 될 때 실행하면 오류가 발생합니다. "BUILD FAILED C : \ Users \ myself \ workspace \ my_project \ build.xml : 758 : java.net.ConnectException : 연결 거부 됨 : connect " – Eric

+0

Eclipse의 내장 된 Ant에서 별도의 컴파일 프로세스가 있으므로 Eclipse의 핫 스왑 기능이 제거되므로이 솔루션이 중요합니다. 이 핫 스왑 앤트 작업은 필자가 필요로하는 것입니다. Ant의 Eclipse 디버그 클라이언트를 트리거 할 수만 있다면 디버그 실행을 클릭 한 번으로 Ant 태스크를 트리거하고 컴파일 및 핫 스왑을 수행 할 때 다시 클릭 할 수 있습니다. – Eric

0

디버깅 워크 플로에서 Ant 제거. 최종 제품 또는 지속적인 통합을 패키징하는 데 Ant를 사용하지만, 반복 개발 및 디버깅을 위해서는 Eclipse에서 직접 코드를 컴파일하고 실행하십시오. 그런 식으로 핫 스왑 핑 등을 얻을 것입니다.

+0

좋아, 알겠습니다. 감사. 내 Ant 컴파일 타겟을 제대로 실행하도록 Eclipse를 구성해야하지만, 괜찮아 보인다. 내가 할 수있는 곳이면 Eclipse의 빌드 관련 기능을 포기하는 것이 더 깔끔하게 보였다. 이것이 핫 스왑 핑을 얻는 유일한 방법이라면 나는 그것을 갈 것이다. – Eric

+0

Ant 또는 Maven을 Eclipse 반복 개발자 및 디버깅 워크 플로우에 넣으려고하면 Eclipse 및 다양한 플러그인에 내장 된 최적화를 무시하고 가능한 빨리 해당 워크 플로를 만들 수 있습니다. 당신의 도구와 싸우지 마십시오. 그들로 하여금 당신의 삶을 편하게 만들어주십시오. –