使用模块在Eclipse中创建Google应用程序引擎项目

使用模块在Eclipse中创建Google应用程序引擎项目,eclipse,google-app-engine,maven,ear,gae-module,Eclipse,Google App Engine,Maven,Ear,Gae Module,根据cloud.google.com上的建议,我一直在用Eclipse和Maven编写一个GAE应用程序。最近,我需要使用“后端”或一组不同的实例来处理某项任务。我发现“后端”已经被弃用,取而代之的是“模块”。在过去的几天里,我一直在尝试设置使用模块的项目,但进展甚微 我所要做的就是将不同的URL分派到不同的实例集(使用modules和dispatch.xml)。有人知道我如何转换现有的Eclipse项目来实现这一点吗?我甚至愿意做一个新项目 我需要我的模块来: 1) 使用原始应用程序中的共享源

根据cloud.google.com上的建议,我一直在用Eclipse和Maven编写一个GAE应用程序。最近,我需要使用“后端”或一组不同的实例来处理某项任务。我发现“后端”已经被弃用,取而代之的是“模块”。在过去的几天里,我一直在尝试设置使用模块的项目,但进展甚微

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

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


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

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

我也有同样的问题,我用这种方法解决了

Appstart()一个基于maven的多模块应用程序引擎应用程序样板,演示了Guice、Jersey、Objectify、Cloud EndPoints等技术的使用,有3个模块:fronend模块、backend模块和common模块,其中包括包括模型在内的所有公共类,这将向您展示一个如何管理公共代码的示例。该文件夹包含以下模块/maven项目

  • 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>

uk.co.inetria.appstart
应用程序启动公用程序
1.0-快照

当您更改公共代码时,可以运行mvn clean,然后从appstart ear目录进行安装,并且它应该更新所有相关项目。我希望这有帮助

这里是我用eclipse开普勒创建的多模块项目的演练

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

设置目标运行时:谷歌应用程序引擎(x.x.x)

设置将项目添加到ear:已选定

设置EAR项目名称:myear

这将创建两个eclipse项目,一个与模块关联,另一个与ear文件关联:

mymodule1

迈尔

在这两个项目的appengine-application.xml中

<application></application>

同时保留您的GAE项目名称(例如MyGAE项目-11111) 您应该已经在云控制台中创建了这个名称,它将包含多个模块

2) 在mymodule1的appengine-application.xml中

<application>mygaeproject-11111</application>
mygaeproject-11111
加上

<module>mymodule1</module>
mymodule1
(否则,稍后会出现“多个条目具有相同密钥”异常)

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

<instance-class>F2</instance-class>
F2
3) 从项目菜单中清除mymodule1和myear。如果您愿意,现在可以将myear部署到本地google应用服务器

4) 您还需要一个默认模块来部署到生产服务器上,因此将mymodule2创建为一个普通的动态web项目

设置目标运行时:谷歌应用程序引擎(x.x.x)

设置将项目添加到ear:已选定

设置EAR项目名称:myear

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

<application>mygaeproject-11111</application>
<module>default</module>
mygaeproject-11111
违约
6) 在myear的application.xml(不是appengine application.xml)中,设置与

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

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


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

我接受了这个答案。但事实上,我改用了Intellij,我再高兴不过了。你能解释一下你是如何在模块中使用Intellij的吗?模块有发电机吗?
<context-root>default</context-root>