7

我在 Eclipse 中有一个项目,一个以 appengine sdk 和 maven 作为我的构建器的 java 应用程序。

.class 文件在我启动全新安装之前不会刷新,因此我对代码所做的每一次更改都必须运行:

  • mvn 干净安装
  • mvn 日食:清洁
  • mvn 日食:日食

然后尝试启动我的应用程序。

请帮帮我,这真的很烦人。谢谢

4

4 回答 4

1

您可能正在寻找热部署功能。当使用 webapp 工作时,在大多数情况下,仅仅编译一个 java 类是不够的——通常你必须创建一个 war 包,而且几乎总是你必须将新代码重新部署到应用服务器。

mvn 包应该足以创建战争。只要不删除或重命名任何文件,就不需要运行mvn clean 。那会让事情变得更快。

但是,要实现热部署(即在 Web 引擎开发服务器上即时获取新代码),您需要做一些额外的工作。确保您使用Google Plugin for Eclipse - 您可以将它与 maven 一起使用。该插件至少应该处理静态文件热部署。使用 Eclipse 在调试模式下运行应用程序会有所帮助,并且它能够动态替换方法的主体。

查找此问题的更多信息答案。

于 2012-08-31T21:33:32.137 回答
1

我知道这是一篇非常古老的帖子,但我最近在使用 STS 和 Websphere 应用程序服务器时遇到了这个问题。希望这可以帮助任何人遇到这个古老的帖子遗物。

查看 Eclipse 市场中的“FileSync”插件。它允许将您的工作区文件与外部目录同步(想想您的应用程序服务器)。安装“FileSync”后,您可以将其配置为将您的工作区文件直接“复制/粘贴”到应用程序服务器的展开的 .war 目录中。将您的文件复制为符合 j2ee 的格式可能需要一些时间,但它对我来说就像一个魅力。配置完成后,您基本上只需更新文件,保存它们,您的应用程序就可以使用了!

于 2016-04-29T17:40:45.340 回答
0

实际上,仅使用 Eclipse m2e 插件即可轻松实现 App Engine 应用程序的热重载,并且不需要 GPE 插件或任何其他特殊连接器:

1) 使用提供的 Google 原型或其他自定义原型之一,像往常一样在 Eclipse 中将您的 App Engine 应用程序创建为 Maven 项目。

mvn clean install2) 配置您的项目,并在项目的根目录中进行初始构建以创建初始target/<artifact>-<version>WAR 目录。

3) 在项目根目录中启动开发服务器,mvn appengine:devserver并确保您可以在浏览器中查看本地提供的应用程序。让开发服务器保持运行。

4) 在 Eclipse 中,确保Project -> Build automatically已选中。

现在,每当您保存.java文件时,Eclipse 都会自动.classtarget/<artifact>-<version>/WEB-INF/classes. 在 Maven 项目中,此目录设置为.classpath. 开发服务器将检测文件更改并热重新加载您的应用程序,以便在您在浏览器中刷新应用程序时立即显示更改。

于 2016-06-13T23:54:57.800 回答
0

从这个问题中不清楚到底发生了什么以及为什么。为了弄清楚这一点,我们需要查看 pom.xml 和显示相关文件夹和文件的“tree”命令输出。然后我们可以将其与相关的 maven 插件应该做什么进行比较,并从那里开始工作。

就目前而言,这是一个相当古老的问题,目前还不清楚到底发生了什么,而且 OP 很久以前就消失了。如果今天发生此问题,最好的办法是发布到App Engine Public Issue Tracker,尽管如果问题不在 App Engine SDK(或相关的 maven 插件)中而是来自第三方,这可能是不合适的-party maven 插件行为不正常(例如maven-compiler-plugin)。然而,在进行更深入的分析之前,很难提前知道。

于 2016-03-01T22:51:32.947 回答