如何自动重新加载应用引擎开发服务器?

时间:2014-07-29 05:11:53

标签: java google-app-engine maven

我跟随tutorial on the App Engine website for 'Google Cloud Endpoints' in Java。一切正常,我可以使用mvn appengine:devserver运行开发服务器。问题是,当我对文件(例如,任何java文件)进行任何更改时,开发服务器不会自动重新编译。我需要ctrl-c来杀死开发服务器并为我所做的每一次代码更改重启它。

有没有办法让maven自动检测项目中任何文件的更改并让它自动重建并重新启动开发服务器?

3 个答案:

答案 0 :(得分:3)

不幸的是没有。如果您希望在dev服务器上使用此行为,则需要使用Python。

我遇到了同样的问题,App Engine没有提供真正的解决方法来帮助您这样做。

来自“使用Eclipse的谷歌插件”:

  
    

使用Eclipse,您可以在对源代码,JSP,静态文件和appengine-web.xml进行更改时让服务器在调试器中运行。保存对源代码的更改时,Eclipse会自动编译该类,然后尝试动态地将其插入到正在运行的Web服务器中。在大多数情况下,您只需在浏览器中重新加载页面即可测试新版本的代码。对JSP,静态文件和appengine-web.xml的更改由开发服务器自动识别,并且无需重新启动服务器即可生效。如果更改web.xml或其他配置文件,则必须停止并启动服务器才能使更改生效。

  

https://developers.google.com/appengine/docs/java/tools/eclipse#Running_the_Project

Java中没有可比性(来自“Java开发服务器”的链接)(https://developers.google.com/appengine/docs/java/tools/devserver

答案 1 :(得分:1)

App Engine SDK中目前没有任何内容可以在文件更改时自动重启,但这并不是说你不能这样做。我遇到了同样的问题并写了一个脚本来监听文件更改作为重启App Engine的触发器。它是在JavaScript中,因此如果您还没有{},则需要install Node.js

// Install watch-exec
$ npm install -g watch-exec

// Watch the current directory
$ watch-exec --command "mvn appengine:devserver" --watch .

这将立即启动App Engine,然后在文件更改时重新启动它。如果应用程序因某种原因崩溃,脚本将等待您的下一次编辑,然后再尝试重新启动。

P.S。整个脚本大约有40行代码,你可以在其他脚本语言中做同样的事情。如果您之前没有尝试过编写自己的自动化程序,我绝对建议您查看source code以查看其工作原理。

答案 2 :(得分:1)

我发现使用Gradle,GAE和Spring MVC,汇编命令会将正确的工件放在适当的位置,服务器将重新启动应用程序。它比服务器重启快一点。