2

按照 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>
...

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

4

3 回答 3

2

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

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

于 2014-09-10T08:41:45.250 回答
1

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

于 2014-03-16T21:38:03.160 回答
0

当您在目标“appengine:run”的帮助下在本地开发服务器上运行应用引擎应用程序时,它会继续观察文件中的更改,并且每当您进行一些更改并保存它们时,插件会自动将其部署在已经运行的开发服务器上.

不需要任何额外的配置。

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

  1. 实现一个返回“String”的 GET 端点(testApi/v1/getName)并返回任何名称,如“Aashish”。
  2. 执行目标“appengine:run”,这将在本地开发服务器上运行您的应用程序。
  3. 如果您在浏览器中点击此 GET - http://localhost:8080/_ah/api/testApi/v1/getName,您将看到“Aashish”。
  4. 现在,转到 Eclipse,只需将此返回文本更改为“Ajay”并保存并在浏览器中点击相同的 GET api,您将看到“Ajay”
于 2019-01-21T12:21:57.983 回答