2

我正在创建一个 GAE 应用程序,并且我正在使用 WTP 遵循 Eclipse 中模块化 GAE 应用程序的建议结构,如此所述(请参阅“企业应用程序 EAR”部分)。

我已经创建并链接了 GAE 的本地服务器实例,并且将 EAR 及其模块部署到本地主机上的 GAE 开发实例工作正常。

但是,当我尝试“部署到 App Engine”(通过 Google 按钮)以将我的应用程序发布到 Google 远程服务器时,我遇到了错误“...(EAR 项目名称)不是 App Engine项目”。我也尝试定义一个具有远程地址的新服务器,但是失败并出现错误“当前选择的服务器类型不支持远程主机”。主机名的字段被限制为“localhost”作为有效的服务器地址。

我的 Eclipse 项目结构如下所示:

<<Enterprise Application Project>> ear-app
    |
    -- <<Dynamic Web Project>> app-module-1
    -- <<Dynamic Web Project>> app-module-2
    -- <<Dynamic Web Project>> app-module-3
    -- <<Dynamic Web Project>> app-module-4

请注意,这不是一个单一的“Google / Web 应用程序项目”,它按预期工作(但不支持多个 Eclipse 项目的模块化)。另请注意,我没有使用 Maven 和建议的 mvn 命令,如此所述。

我在 Eclipse Kepler 4.3.1 中使用 GAE SDK 1.9.3 和 GPE 3.5.1。

那么如何将 Eclipse WTP 项目结构部署到 Google 远程服务器呢?如果这不可能,您是否建议我切换到 Maven,如果是,这是否支持从 Eclipse 中管理的多模块项目?

4

1 回答 1

1

我偶然发现了解决方案:

在 Servers 视图中,右键单击本地开发服务器后,会出现另一个上下文菜单条目“Google App Engine WTP / Deploy to Remote Server”。这会将 EAR 和所有模块部署到 Google 基础架构。服务器视图的菜单中还有一个“Google App Engine WTP”按钮,提供相同的选项。

坦率地说,我发现这是一个高度不一致的 UI 实现:如果我们创建一个 Google Web Application 类型的项目,那么主菜单中的 Google 按钮是有效的,上下文菜单可以找到“Google...”。当我们以 WTP 样式创建多模块 EAR 结构时,这些变得无效(但仍然存在)。这将在不同的位置创建一组不同的按钮和上下文菜单条目,然后 LOCAL 服务器的上下文菜单将支持部署到 REMOTE 服务器。

更新:使用 GAE 工具几周后,我终于切换到远程部署的命令行选项 (appcfg)。我在 GPE 中有其他错误用于部署回滚(在 Eclipse 中失败但与 appcfg 一起使用)。我推荐 appcfg 作为 Google 基础架构的管理工具,它提供了更多的控制,并且比 Eclipse 插件更成熟。

于 2014-05-09T13:01:57.837 回答