在Eclipse中创建Google App Engine项目及模块

7
我一直在使用Eclipse和Maven编写GAE应用程序,如cloud.google.com所建议的那样。最近,我需要使用“后端”或不同的实例来处理某个任务。我发现“后端”已被弃用,取而代之的是“模块”。我花了几天时间尝试设置项目以使用模块,并取得了很少的进展。
我想要做的就是将不同的URL分配到不同的实例集合(使用模块和dispatch.xml)。有人知道如何将我的现有Eclipse项目转换为这样吗?我甚至愿意创建一个新项目。
我需要我的模块: 1)使用原始应用程序的共享源代码/类 2)具有不同数量的常驻实例 3)遵守dispatch.xml中的规则
我希望我的项目在Eclipse中运行,并使用gradle或maven。
3个回答

6

我有同样的问题,我用以下方法解决了。

Appstart (https://github.com/omerio/appstart) 是一个基于 Maven 的多模块 App Engine 应用程序脚手架,演示了如何使用 Guice、Jersey、Objectify、Cloud EndPoints 等技术,并包括 3 个模块:前端模块、后端模块和公共模块,其中包括所有公共类,包括模型,这应该向您展示如何管理公共代码。该文件夹包含以下模块/Maven 项目:

  • appstart-backend
  • appstart-common
  • appstart-ear
  • appstart-frontend

后端模块仅包含后端所需的代码,前端模块包含前端代码,而公共模块包含公共代码。这些项目都设置在一个名为“appstart”的父文件夹中,其具有一个父 Maven POM。公共模块是通过 Maven 依赖项包含在前端和后端中的。

<!-- Common module dependency -->
    <dependency>
        <groupId>uk.co.inetria.appstart</groupId>
        <artifactId>appstart-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

当您更改通用代码时,您可以从appstart-ear目录运行mvn clean然后安装,它应该更新所有依赖项目。希望这有所帮助。

我接受了这个答案。但实际上,我转向使用Intellij,并且非常满意。 - clocksmith
你能解释一下如何在IntelliJ中使用模块吗?有没有模块生成器?http://stackoverflow.com/questions/28671540/setting-up-a-project-for-google-app-engine-with-modules - pfried

1
我最终做的是在Eclipse中创建一个新的企业应用程序项目,将我的代码和配置复制到新的文件结构中,然后重新导入项目作为Maven项目。目前情况似乎还可以。

0

这是我使用Eclipse Kepler创建的多模块项目的演示。

1)创建一个普通的动态Web项目mymodule1

设置目标运行时:Google App Engine(x.x.x)

设置将项目添加到EAR中:选中

设置EAR项目名称:myear

这将创建两个Eclipse项目,一个与模块相关联,另一个与EAR文件相关联:

mymodule1

myear

在这些项目的appengine-application.xml中设置

<application></application>

包含您的GAE项目名称(例如mygaeproject-11111)的两个位置:

这个名称应该已经在云控制台中创建,并将包含多个模块。

2)在mymodule1的appengine-application.xml中:

<application>mygaeproject-11111</application>

添加...

<module>mymodule1</module>

(否则您最终会遇到“具有相同键的多个条目”异常)

3)在mymodule1的appengine-application.xml中,添加您想要模块运行的实例类(在appengine-web-app内部),例如:

<instance-class>F2</instance-class>

3) 從項目菜單中清除 mymodule1 和 myear。如果您希望,現在可以將 myear 部署到本地 Google App 服務器。

4) 您還需要一個默認模塊來部署到生產服務器,因此請創建 mymodule2 作為普通的動態 Web 項目。

設置目標運行時:Google App Engine(x.x.x)

設置添加項目到 ear:已選擇

設置 EAR 項目名稱:myear

5) 在 mymodule2 的 appengine-application.xml 中設置以下內容,並像之前一樣設置實例類別。

<application>mygaeproject-11111</application>
<module>default</module>

6) 在 myear 的 application.xml 文件中(不是 appengine-application.xml),设置与上下文根相关联的内容

<web-uri>mymodule2.war</web-uri> 

<context-root>default</context-root>

7) 现在清理并重新构建所有内容,然后部署到您的本地 Google 应用服务器。如果一切正常,只需在服务器面板中右键单击服务器,然后选择... 部署到远程服务器

8) 如果以后您想要终止该项目,请在云控制台中选择它,然后转到左侧窗格中的设置并单击禁用应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接