无法将Eclipse WTP EAR多模块项目部署到远程实例

时间:2014-05-06 14:47:22

标签: google-app-engine eclipse-wtp google-eclipse-plugin google-plugin-eclipse

我正在创建一个GAE应用程序,我正在使用WTP跟踪Eclipse中模块化GAE应用程序的建议结构,如文档here所示(参见"企业应用程序EAR")。 p>

我创建并链接了GAE的本地服务器实例,并且将EAR及其模块部署到localhost的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

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

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

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

1 个答案:

答案 0 :(得分:1)

相当偶然,我偶然发现了解决方案:

在“服务器”视图中,右键单击本地开发服务器后,还有另一个上下文菜单条目“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插件更成熟。

相关问题