IntelliJ调试器在Maven Java Google App Engine项目中无法命中断点(Eclipse可以)

4

我开始感到非常苦恼。IntelliJ无法触发断点,而Eclipse却可以。我从未想过我会说出这句话 :|

以下是我的示例:

mvn archetype:generate -Dappengine-version=1.9.15 -Dapplication-id=your-app-id -Dfilter=com.google.appengine.archetypes:guestbook-archetype

  • Uncomment the suggested lines in the pom.xml to allow remote debugging

        <plugin>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <version>1.9.15</version>
            <configuration>
                <enableJarClasses>false</enableJarClasses>
                <!-- Comment in the below snippet to bind to all IPs instead of just localhost -->
                <!-- address>0.0.0.0</address>
                <port>8080</port -->
                <!-- Comment in the below snippet to enable local debugging with a remove debugger
                like those included with Eclipse or IntelliJ -->
                <jvmFlags>
                    <jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n</jvmFlag>
                </jvmFlags>
            </configuration>
        </plugin>
    
  • Run the devserver goal (which compiles, tests and runs the GAE environment)

mvn appengine:devserver

(ECLIPSE: WORKING CASE)

  • 打开Eclipse Juno并将项目导入为Maven项目。
  • 创建一个“远程Java应用程序”调试配置 enter image description here
  • 设置断点,使用远程配置调试应用程序,断点命中,应用停止运行。如预期所述。

(INTELLIJ 14: FAIL CASE)

  • 打开INTELLIJ并将项目导入为Maven项目
  • 创建一个“远程Java应用程序”调试配置 enter image description here
  • 设置断点,使用远程配置调试应用程序,但断点未能触发。

除了使用不同的IDE外,项目设置没有任何区别。这告诉我在IntelliJ中我必须做错了什么,但是我真的不知道是什么。

在Eclipse中它可以正常工作,在IntelliJ中则不能。 :|

有什么想法吗?

-- Shane


你是在附加后,在两种情况下都设置断点吗? - nitind
似乎没有什么区别 :\ - Shane
我有一个类似的问题,我的问题在这里 https://dev59.com/r10a5IYBdhLWcg3wqKGq - datta
3个回答

0

我不确定这个问题是否仍然存在。

我认为你可能有我遇到的同样问题。Intellij debugger does not stop at breakpoints

你确定你的服务器在启动时是否暴露了8000端口以便调试器监听?如果没有,你应该提供那些JVM参数。


0

我已经成功地按照以下方式使其工作:

  • 按照IntelliJ的建议向Maven/Gradle添加JVM标志。
  • 不要使用远程(如GAE文档所建议)。相反,调试appengineRun Gradle任务(Maven类似)。
  • 一旦它启动并运行,点击“运行/附加到本地进程”。

BAM!调试器已连接,断点已命中,应用程序已暂停。


2
我很高兴你解决了问题,但是你的回答并没有特别有帮助。说“按照IntelliJ的建议向Maven/Gradle添加JVM标志”这句话引出了一个问题:“IntelliJ建议了什么?”我希望我能使用这个答案,但我需要更多的信息。 - MiguelMunoz

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接