如何制作Eclipse和mvn appengine:devserver互相交流?

ant*_*upe 30 eclipse google-app-engine maven

我正在从Google Plugin for Eclipse切换到官方Google App Engine Maven插件.我希望,最后一件事是我无法弄清楚如何设置一个好的调试工作流程.当我使用GPE时,我只是设置断点并且调试器在那里自动停止,但是当我通过dev服务器运行时mvn appengine:devserver,我不认为开发服务器和eclipse彼此都知道.

我如何让他们互相交谈?

ant*_*upe 45

第一个选项是将项目设置为使用WTP,如@ https://cloud.google.com/appengine/docs/java/webtoolsplatform所示.这是我切换到的方法.

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

第一个调试配置将运行您的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>
Run Code Online (Sandbox Code Playgroud)

完成这3项操作后,运行maven调试配置,然后运行调试客户端配置,然后运行您的应用程序.

目前还不支持hotswap,因此如果您更改任何非资源文件(任何Java源代码),devserver将无法看到它们.将部署资源文件(静态文件:html,js).

  • 你好.这种方法有效,但有点麻烦,因为你必须开始从eclipse中启动配置.此外,当更改服务器代码中的某些内容时,不会警告您重新启动服务器.有没有办法简单地启动mvn appengine:调试模式下的devserver目标? (5认同)

ant*_*upe 0

我大致按照 @ developers.google.com/appengine/ docs/java/webtoolsplatform 的步骤进行操作,以支持我以前的方法。