[java] IntelliJ IDEA 디버거가 Grails 프로젝트에서 작동하지 않습니다.


Answers

이 시도:

아이디어에서 '실행'버튼 옆의 목록에서 구성 수정을 선택 하십시오 . 그런 다음 원격을 추가하고 이름을 선택하고 기본 원격 구성 설정을 그대로 둡니다. (포트 5005 등)

다음을 사용하여 콘솔에서 앱을 실행하십시오.

grails run-app --debug-fork

아이디어에서 목록에서 구성을 선택하고 콘솔 디스플레이 정보 :

Listening for transport dt_socket at address: 5005
Question

Intellij IDEA에서 코드를 디버그 할 수 없습니다. 디버그 모드가 활성화되어 실행 중이지만 중단 점에 유효하고 중지 가능한 중단 점을 나타내는 "v"가 선택되어 있지 않은 경우

이미지보기 : http://prntscr.com/1w0owu .

나는 정말로 웹에서 대답을 찾고있다. 내가해야 할 일은?




단지 세 가지 추측 :

run-app 가 아닌 run-app 해보십시오. 둘 다 작동해야하지만 run-war 가 작동하지 않을 수도 있습니다.

또는 콘솔에서 원격 디버깅을 시도하십시오.

grails -debug run-app 한 다음 Idea의 Remote Debug와 연결하십시오.

또는 마지막 수단 : 이전 Grails 버전으로 프로젝트를 다운 그레이드 할 수 있습니다. 예, 이것은 정말로 성가신 일입니다.

희망이 도움이됩니다.




Grails (2.3+) 응용 프로그램 디버깅은 두 가지 방법으로 수행 할 수 있습니다.

1. 간단한 해결책 : 디버그 해제

편집 BuildConfig.groovy :

grails.project.fork = [
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...

grails.project.fork = [
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
    run: false,

장점 :

  • 간단한 작업 (그리고 개발 작업을 계속하십시오)

단점 :

  • 이렇게하면 런타임 코드 교체를 수행 할 수 없게됩니다. 즉, 코드를 변경하면 더 이상 자동으로 선택되지 않으므로 변경 사항을 보려면 응용 프로그램을 다시 시작해야합니다. 이것은 매우 많은 시간이 소요될 수 있습니다.

2. 관련 솔루션 : 디버그 포크 런타임

이것은 실행중인 grails 애플리케이션에 디버거를 연결하는 다소 복잡한 솔루션입니다. 이 블로그 게시물에 자세히 설명되어 있습니다.

설정 후에는 fork 모드에서 grails를 시작하고, fork 모드를 디버그 할 수있는 또 다른 추가 실행 구성을 시작할 수있는 추가 실행 구성이 있습니다. 이 캐치는 둘 다 시작해야하거나 작동하지 않는다는 것입니다.

장점 :

  • 디버깅 및 런타임 코드 교체가 모두 있습니다.
  • 이것은 일반 모드에서 응용 프로그램 시작을 방해하지 않습니다. (즉, 추가 옵션이 있습니다)

단점 :

  • 설정하는 데 약간의 시간이 필요합니다.
  • 디버그 모드에서 시작하려면 더 복잡한 두 단계 프로세스가 필요합니다. 즉, 더 오래 걸립니다.

고려 사항

솔루션 2는 융통성을 제공한다는 점에서 대부분 우수합니다. 개인적으로 디버그를 많이 사용하지 않으므로 정상 모드로 시작하십시오. 디버그 할 때 디버그 모드로 다시 시작합니다.

솔루션 1은 디버깅이 필요하고 많은 작업을 다시 시작해야하는 경우 엄격하게 더 좋습니다. 예를 들어, BootStrap.groovy에서 도메인 클래스 나 데이터베이스 설정을 할 때.




2016 년 Intellij 15.0.4에서 Grails 3.x에 대한 다른 답변이 없습니다. 이것은 나를 위해 일한다 :

다음 명령으로 intellij에서 grails를 시작하십시오.

run-app  --debug-jvm

콘솔은 다음을 출력해야합니다 : "주소 dt_socket 전송 : http : // localhost : 8080 in environment : development에서 실행중인 5005 Grails 애플리케이션"

이제 Intellij에 "Remote"유형의 새로운 구성을 추가 할 수 있습니다. 그런 다음 기본값으로 시작하십시오.

그리고 새로운 디버그 콘솔 창은 다음과 같이 작성해야합니다 : "대상 VM에 연결 : 주소 : 'localhost : 5005', 전송 : 'socket'"

끝난.

관심있는 사람들을 위해 디버깅 가능한 서버를 시작하기위한 grails 3.x 문서에 대한 설명은 2.8, runningAndDebuggingAnApplication :

http://grails.github.io/grails-doc/3.1.x/guide/gettingStarted.html#runningAndDebuggingAnApplication

"IDE를 사용하는 경우 Application 클래스를 실행하는 데는 여러 가지 방법이 있습니다. 클래스를 마우스 오른쪽 버튼으로 클릭하고 IDE에서 직접 실행하면 Grails 애플리케이션이 시작됩니다.이 방법은 Grails 애플리케이션을 시작할 때 디버깅 할 때 유용합니다. 명령 줄에서 run-app --debug-jvm 명령을 사용할 때 원격 디버거를 연결할 필요없이 IDE에서 직접 가져올 수 있습니다. "

중요 사항. "클래스를 마우스 오른쪽 버튼으로 클릭하고 IDE에서 직접 실행"을 시도하면 앱이 시작됩니다. 그러나 컨트롤러에 보낸 모든 요청은 "grailsDispatcherServlet"이라는 서블릿에서 "이름이 '/ myendpoint'인보기를 해결할 수 없습니다.라는 메시지와 함께 500 개의 오류가 발생했습니다.

그래서 위의 지침으로 되돌아갔습니다.




이것은 기본 구성이 아니어야하며 개인의 선택에 맡겨 두어야합니다. 두 가지 구성을 수행하는 것은 고통스러운 일입니다.이 일은 intellij의 디버그 모드에서 실행됩니다. 먼저 run-app 다음에 "--debug-fork"를 추가하여 일반 실행 구성을 설정하거나 수정해야합니다. 둘째, 모든 기본값을 허용하면서 원격 디버깅을 구성해야합니다. 그런 다음 실행 구성을 실행해야하며 실행 중일 때 디버그 구성을 실행합니다. 얼마나 아팠는가. 나는 개발하는 동안 갈래의 옵션없이 달리기를 완전히하고 싶어한다. 시간은 돈이고 나는 원숭이에게 시간이 없다. 이렇게하는 것에 대한 하키 씨의 설명을보십시오. http://blog.jdriven.com/2013/12/grails-goodness-debugging-app-forked-mode/




Related