我想要做的就是将不同的URL分配到不同的实例集合(使用模块和dispatch.xml)。有人知道如何将我的现有Eclipse项目转换为这样吗?我甚至愿意创建一个新项目。
我需要我的模块: 1)使用原始应用程序的共享源代码/类 2)具有不同数量的常驻实例 3)遵守dispatch.xml中的规则
我希望我的项目在Eclipse中运行,并使用gradle或maven。
我有同样的问题,我用以下方法解决了。
Appstart (https://github.com/omerio/appstart) 是一个基于 Maven 的多模块 App Engine 应用程序脚手架,演示了如何使用 Guice、Jersey、Objectify、Cloud EndPoints 等技术,并包括 3 个模块:前端模块、后端模块和公共模块,其中包括所有公共类,包括模型,这应该向您展示如何管理公共代码。该文件夹包含以下模块/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>
这是我使用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) 如果以后您想要终止该项目,请在云控制台中选择它,然后转到左侧窗格中的设置并单击禁用应用程序。