如何使用谷歌应用引擎,maven和eclipse启用热插拔?

时间:2014-03-16 12:04:25

标签: eclipse google-app-engine maven hotswap

遵循Google https://developers.google.com/appengine/docs/java/tools/maven的指示 以某种方式,jsp文件中的更改未被拾取,而java文件中的更改是。

所以当我更改java文件时,我得到以下日志:

  

[INFO] INFO:文件已更改,重新加载Web应用程序。

但是当我更改jsp或html文件时,它没有被选中,旧的内容会显示在浏览器中。

我的pom.xml文件包含以下行:

<build>
<outputDirectory>target/${project.artifactId}-${project.version}/WEB-INF/classes</outputDirectory> 
...        
<plugins>
    <plugin>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>${appengine.target.version}</version>
        <configuration>
            <fullScanSeconds>1</fullScanSeconds>
        </configuration>
    </plugin>
...

经过一些研究后,我看到一些建议使用文件同步类型的解决方案,但似乎有点奇怪。 难道它不能在日食中使用maven和gae插件开箱即用吗? 没有maven它可以正常工作,但是如果没有maven,你必须自己处理jar依赖。 如果没有热插拔/热代码替换,带有gae的eclipse中的maven解决方案不是一个好的开发环境。

3 个答案:

答案 0 :(得分:2)

但是当我更改jsp或html文件时,它没有被选中,旧的内容会显示在浏览器中。

只需执行&#34; mvn package&#34;在&#34; myapp&#34;当我更改java代码或jsp代码时,目录(不是myapp-ear或myapp-war)。所以它的工作原理(热部署)。 希望这对你有用。

答案 1 :(得分:1)

尝试安装m2e-wtp插件,该插件充当m2e和wtp项目之间的桥梁。这是否能解决您的问题可能取决于您使用的是哪个版本的日食。

答案 2 :(得分:0)

当您在目标“ appengine:run”的帮助下在本地开发服务器上运行App Engine应用程序时,它会继续监视文件中的更改,并且每当进行一些更改并保存它们时,插件就会自动将其部署到运行开发服务器。

不需要任何额外的配置。

您可以简单地进行如下测试;

  1. 实现返回“ String”的GET端点(testApi / v1 / getName),并返回任何名称,例如“ Aashish”。
  2. 执行目标“ appengine:run”,这将在本地开发服务器上运行您的应用。
  3. 如果您在浏览器中点击此GET-http://localhost:8080/_ah/api/testApi/v1/getName,则会看到“ Aashish”。
  4. 现在,要蚀,只需将返回的文本更改为“ Ajay”,然后在浏览器中保存并点击相同的GET API,您就会看到“ Ajay”