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

标签 java google-app-engine maven

maven 插件的最新版本已经启用了每 5 秒更新一次代码,这是一个很大的改进。但是除非我配置错误,否则它似乎不会获取静态文件更改,例如连接到应用引擎代码的正在进行的 Javascript。
有什么方法可以改变这种行为,还是我只需要等待新版本?

最佳答案

现在不能单独使用附加 devserver 来完成自动更新。严格来说,我们需要等待。

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

  1. 配置 Apache httpd 或 Nginx 以直接从您的 war-source 提供静态代码,并路由到 servlet 的应用引擎。在我的例子中,所有 html 都可以直接从 webapp 目录访问,并且通过/sim/调用 servlet。使用 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/;
      }
    }
    

使用this nginx 文档,更多配置。

分别配置 Eclipse 和 GAE。

  1. 现在,您可以直接更改源代码并在刷新时获取它们,对于 html(通过 nginx)和 servlet(通过 devserver)都是如此。
  2. 将此 webapp 文件夹添加到您的 Chrome 开发者工具、Sources 工作区,这样生活会更轻松。 chrome 的小改动可以直接通过 ctrl 保存到 src

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

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

关于java - 有没有办法触发 Maven Appengine Devserver 自动刷新静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21345177/

相关文章:

java - Android 中用于双击空格的自定义键盘输入过滤器

java - Apache Camel - 如何使用InputStream作为源?

java - logback 资源 [logback.xml] 上出现错误而不是警告 在类路径上多次出现

java - 在 Google App Engine 开发服务器中使用 https 的最佳方式

python-2.7 - 在谷歌应用程序引擎中运行 cron 会出现 404 错误

google-app-engine - GAS、GWT 和 Google 应用引擎之间的区别

java - 必须在 intellij 中声明元素 web-app 错误(java、springmvc、maven)

java - 如何在不迭代的情况下获取给定 LinkedHashSet 元素的索引?

java - 了解maven项目结构

maven - 如何在 IntelliJ 中查看 Maven 依赖关系层次结构