有没有办法触发Maven Appengine Devserver自动刷新静态文件?

Ove*_*Tim 8 java google-app-engine maven

最新版本的maven插件已经启用了每5秒更新代码,这是一个很大的改进.但除非我正在配置这个错误,否则它似乎没有获取静态文件更改,例如正在进行的Javascript连接到appengine代码.
有没有办法改变这种行为,或者我只需要等待新版本?

Poo*_*C20 2

目前无法仅使用附加开发服务器来完成自动更新。严格来说,我们需要等待。

但通过下面的配置可以实现html/js/css/etc无缝更新、java代码热替换等效果。

  1. 配置 Apache httpd 或 Nginx 以直接从您的 war 源提供静态代码并路由到 servlet 的应用程序引擎。就我而言,所有 html 都可以从 webapp 目录直接访问,并且 servlet 通过 /sim/ 调用。使用 nginx 和 7070 端口,我的工作 nginx 配置如下所示:

    server {
      listen 7070;
    
      root /home/pchauhan/Projects/my-company/my-mvn-gae-project/my-mvn-gae-project-war/src/main/webapp;
    
      location /sim/ {
            proxy_pass http://localhost:8080/sim/;
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

使用nginx 的 此文档进行更多配置。

分别配置Eclipse和GAE。

  1. 现在,您可以直接对源代码进行更改并刷新它们,无论是 html(通过 nginx)还是 servlet(通过 devserver)。
  2. 将此 webapp 文件夹添加到您的 Chrome 开发工具、源工作区,生活将会变得更加轻松。小改动可以通过ctrl直接从chrome保存到src

请注意,虽然这很好,但您应该在上传之前仅在 8080(开发服务器端口)上测试您的应用程序,以防万一 Maven 配置中存在错误并且目标未正确创建/服务。

同步的替代想法:如果您出于某种原因不想使用 nginx/httpd,您可以将 target...webapp 添加到 chrome 工作区,直接在那里进行无缝 updt,然后使用 lsyncd 将目标同步回 src。我还没有尝试过,但看起来可行,尽管有点冒险。