如何使用google app engine、maven和eclipse实现热交换?

如何使用google app engine、maven和eclipse实现热交换?,eclipse,google-app-engine,maven,hotswap,Eclipse,Google App Engine,Maven,Hotswap,按照谷歌的指示 不知何故,jsp文件中的更改不会被拾取,而java文件中的更改会被拾取 因此,当我更改java文件时,会得到以下日志: [信息]信息:文件已更改,正在重新加载web应用程序 但是,当我更改jsp或html文件时,它不会被拾取,并且旧的内容会显示在浏览器中 我的pom.xml文件包括以下行: <build> <outputDirectory>target/${project.artifactId}-${project.version}/WEB-INF/cla

按照谷歌的指示 不知何故,jsp文件中的更改不会被拾取,而java文件中的更改会被拾取

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

[信息]信息:文件已更改,正在重新加载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>
...

target/${project.artifactId}-${project.version}/WEB-INF/classes
...        
com.google.appengine
appengine maven插件
${appengine.target.version}
1.
...
经过一些研究,我看到一些人建议使用filesync类型的解决方案,但这似乎有点奇怪。 eclipse中的maven和gae插件不应该开箱即用吗? 没有maven它工作得很好,但是没有maven,您将不得不自己处理jar依赖关系。 没有热插拔/热代码替换,eclipse中带有gae的maven解决方案不是一个好的开发环境。

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

但是,当我更改jsp或html文件时,它不会被拾取,并且旧的内容会显示在浏览器中

当我更改java代码或jsp代码时,只需在“myapp”目录(不是myapp ear或myapp war)执行“mvn包”。所以它可以工作(热部署)。
希望这对您有用。

当您在本地开发服务器上借助目标“appengine:run”运行app engine应用程序时,它会持续监视文件中的更改,每当您进行一些更改并保存它们时,插件会自动将其部署到已经运行的开发服务器上

不需要任何额外的配置

您可以简单地如下测试:

  • 实现一个GET端点(testApi/v1/getName),返回“String”并返回任何名称,如“Aashish”
  • 执行目标“appengine:run”,这将在本地开发服务器上运行您的应用程序
  • 如果你点击这个进入浏览器,你会看到“Aashish”
  • 现在,转到eclipse,只需将返回的文本更改为“Ajay”,保存并在浏览器中点击相同的GETAPI,您将看到“Ajay”

  • 我应该补充一点,m2e(1.4.0)和m2e wtp(1.0.1)插件已经安装。我使用的Eclipse版本是开普勒。您正在寻找的热交换行为是使用Eclipse“作为google webapp运行”,而不是命令行?理想情况下,我会使用“作为google webapp运行”,但对于maven,我会使用“作为>maven build>appengine:devserver运行”。我认为这个问题与maven扫描目标文件夹有关,但是只有在执行maven包时才会填充目标文件夹。然而,这减慢了开发过程。