我创建了Spring Boot
+ Google App Engine
个应用程序。出于开发目的,我使用IntelliJ IDEA
和Google Cloud Tools
插件。我目前只使用localDebug,这意味着我没有在Google云上部署任何内容。调试配置如下:
我创建了一个简单的服务,以确保我的代码是否在更改时更新:
static int i = 10;
@GetMapping(value = "/test")
public String test() {
return Integer.toString(++i);
}
不幸的是,当我更改我的代码(例如从i = 10
到i = 100
)并重新启动应用时(我的意思是按下Rerun (Ctrl+F5)
或Stop (Ctrl+F2)
+ Run
我的代码不适用于服务器,这意味着Idea不会在服务器启动时重建源代码。正如您在上面的屏幕截图中看到的那样,我甚至尝试将Build Project
步骤添加到Before launch
,其中没有'工作。
mvn appengine:run
执行 - >按Ctrl+C
停止它,切换到IDEA并再次开始调试,这是一个痛苦的屁股。 Hot Reload
(更新应用程序,Ctrl+F10
)。它只重新编译已更改的类并重新加载资源。这是一个很酷的功能,但遗憾的是它在许多情况下都无法使用,这使我无法将其用作可靠的重载。我有什么办法可以强迫IDEA编译我的资源吗?这是我应该向插件开发者报告的错误。或者也许appengine使用一些需要显式调用maven的其他远程源?
答案 0 :(得分:1)
我终于找到了解决方案。据我了解,Google cloud plugin
只是将类符合target/classes
,但当它启动appEngine
时,引擎预期解压缩.war
将出现在target/demo-0.0.1-SNAPSHOT
下。< / p>
E.g。如果因为如果我删除这两个目录,我会收到以下错误:
要解决这个问题,我需要编译这些来源:
Run
中 - &gt; Edit configuration
Google App Engine Standard Local server
Build Artifact
- &gt; demo:war exploded
其中demo是您的应用程序的名称。