我正在从Google Plugin for Eclipse转换为Google官方App Engine Maven Plugin的过程。
我希望我无法弄清的最后一件事是如何建立良好的调试工作流程。当我使用GPE时,我只是设置了断点,调试器自动地在那里停了下来,但是当我通过mvn appengine:devserver运行开发服务器时,我认为开发服务器和eclipse不会互相了解。

我如何使他们彼此交谈?

最佳答案

第一种选择是将您的项目设置为使用@ https://cloud.google.com/appengine/docs/java/webtoolsplatform中所述的WTP。这是我切换到的方法。

第二个选项是使用两个调试配置。

第一个调试配置将运行您的maven目标,即appengine:devserver

第二个是Remote Java Application配置,它将调试客户端连接到devserver jvm。

这还需要将一些jvm args传递给Maven目标。

<!-- GAE plugin -->
<plugin>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>1.7.5-SNAPSHOT</version>
    <configuration>
        <jvmFlags>
            <jvmFlag>-Xdebug</jvmFlag>
            <jvmFlag>-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=y
            </jvmFlag>
        </jvmFlags>
        <disableUpdateCheck>true</disableUpdateCheck>
    </configuration>
</plugin>

一旦这三样东西就位了,运行maven调试配置,然后运行调试客户端配置,然后运行您的应用程序。

目前尚不支持热插拔,因此,如果您更改任何非资源文件(任何Java源代码),则devserver将看不到它们。资源文件将被部署(静态文件:html,js)。

07-26 05:04