我已经在cloud.google.com上建议使用带有Maven的Eclipse编写GAE应用程序。最近,我需要使用"后端"或者一组不同的实例来处理某个任务。我发现"后端"已被弃用以支持" modules"。我花了最近几天尝试设置项目以使用模块,并且几乎没有取得任何进展。
我想做的就是将不同的URL分派到不同的实例集(使用modules和dispatch.xml)。有谁知道我如何转换我现有的Eclipse项目来做到这一点?我甚至愿意做一个新项目。
我需要我的模块: 1)使用我原始应用程序中的共享源代码/类 2)具有不同数量的常驻实例 3)尊重dispatch.xml中的规则
我希望我的项目能够在eclipse中运行并使用gradle或maven。
答案 0 :(得分:6)
我有同样的问题,我用这种方式解决了。
Appstart(https://github.com/omerio/appstart)基于样板maven的多模块App Engine应用程序,演示了Guice,Jersey,Objectify,Cloud EndPoints等技术的使用,并有3个模块,一个fronend模块,后端模块和通用模块包括所有常见的类,包括模型,它应该向您展示如何管理公共代码的示例。该文件夹包含以下模块/ maven项目
后端模块仅包含后端所需的代码,前端包含前端代码,公共模块包含公共代码。项目设置在父文件夹“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)如果以后要杀死项目,请在云控制台中选择它,然后转到左侧窗格中的设置,然后单击禁用应用程序。