我正在从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)。