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

时间:2014-11-30 22:26:08

标签: eclipse google-app-engine maven ear gae-module

我已经在cloud.google.com上建议使用带有Maven的Eclipse编写GAE应用程序。最近,我需要使用"后端"或者一组不同的实例来处理某个任务。我发现"后端"已被弃用以支持" modules"。我花了最近几天尝试设置项目以使用模块,并且几乎没有取得任何进展。

我想做的就是将不同的URL分派到不同的实例集(使用modules和dispatch.xml)。有谁知道我如何转换我现有的Eclipse项目来做到这一点?我甚至愿意做一个新项目。

我需要我的模块: 1)使用我原始应用程序中的共享源代码/类 2)具有不同数量的常驻实例 3)尊重dispatch.xml中的规则

我希望我的项目能够在eclipse中运行并使用gradle或maven。

3 个答案:

答案 0 :(得分:6)

我有同样的问题,我用这种方式解决了。

Appstart(https://github.com/omerio/appstart)基于样板maven的多模块App Engine应用程序,演示了Guice,Jersey,Objectify,Cloud EndPoints等技术的使用,并有3个模块,一个fronend模块,后端模块和通用模块包括所有常见的类,包括模型,它应该向您展示如何管理公共代码的示例。该文件夹包含以下模块/ maven项目

  • AppStart的-后端
  • AppStart的共用
  • AppStart的耳
  • AppStart的-前端

后端模块仅包含后端所需的代码,前端包含前端代码,公共模块包含公共代码。项目设置在父文件夹“appstart”中。与父母maven POM。公共模块使用maven依赖包括在前端和后端:

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

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

答案 1 :(得分:1)

我最终做的是在eclipse中创建一个新的企业应用程序项目,将我的代码和配置复制到新的文件结构中,然后将项目重新导入为maven项目。现在看来还不错。

答案 2 :(得分:0)

以下是我使用eclipse Kepler创建的多模块项目的演练。

1)将mymodule1创建为普通的动态Web项目

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

将项目添加到耳中:已选择

设置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>

(否则你最终得到一个&#34;具有相同键的多个条目&#34;稍后例外)

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项目名称:myear

5)在mymodule2的appengine-application.xml中设置以下内容,并像之前一样设置实例类。

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

6)在myear的application.xml(not appengine-application.xml)中设置与

关联的上下文根
<web-uri>mymodule2.war</web-uri> 

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

7)现在确定清理并再次构建所有内容并部署到您当地的Google App服务器。 如果所有看起来都很好,只需右键单击服务器面板中的服务器,然后选择...部署到远程服务器

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