我正在寻找有关如何设置涉及多个模块的Google App Engine项目的建议,其中一个模块是GWT项目。我已阅读Google App Engine模块文档(https://developers.google.com/appengine/docs/java/modules/)并在Stackoverflow上找到了一些帮助,例如此帖子GWT GAE app engine modules using appengine-skeleton-archetype。然而,这涉及很多部分,所以我很乐意得到一些建议。
平台注意事项:
设计
从概念上讲,我喜欢一个执行计算密集型工作的系统,可以由具有良好HTML界面的最终用户安排。我非常喜欢GWT和Eclipse插件。我无法弄清楚如何使其适用于允许无限期限的模块(如https://developers.google.com/appengine/docs/java/modules/#Java_Instance_scaling_and_class所述)
架构:
1] GWT用户界面:我想使用Google Plugin for Eclipse生成一个基本的GWT项目,因为我非常熟悉Google Plugin for Eclipse。
1.a]我认为它需要是自己的Eclipse项目,然后添加到添加到EAR中,如https://developers.google.com/appengine/docs/java/webtoolsplatform#enterprise_application所述。
1.b]我认为需要配置实例扩展自动,如此处所述https://developers.google.com/appengine/docs/java/modules/#Java_Instance_scaling_and_class。我是否必须指定自动,或者它是否为使用Google Plugin for Eclipse创建的GWT模块假设为自动?
2]基本缩放模块:我喜欢能够长时间运行的模块。在过去,我使用计划任务,让我的作业以10分钟的间隔运行(计划任务的最大允许处理时间)。但根据https://developers.google.com/appengine/docs/java/modules/#Java_Instance_scaling_and_class我可以使用Scaling Type = Basic的模块,这将允许无限制的处理时间。我喜欢。
3]任务队列:我计划使用任务队列(https://developers.google.com/appengine/docs/java/taskqueue/)来获取GWT用户界面模块,告诉Basic Scaling模块开始工作。我从未使用过任务队列,所以我很感激验证这应该有效。
总结我的问题:
A]我的设计理念是否可行?
B]我的架构是否可能?
C]我如何实际产生所需的架构?我应该手动创建https://developers.google.com/appengine/docs/java/modules/#Java_Application_hierarchy中描述的所有配置文件吗?或者它应该由Maven,Web Tools Platform或Eclipse插件生成?
D]更具体地说,我可以根据https://developers.google.com/appengine/docs/java/webtoolsplatform#creating_a_project设置基本的EAR和WAR。我可以使用Google Plugin for Eclipse创建一个GWT项目。但是如何将该GWT项目添加到EAR?我应该自己配置文件,还是应该通过Maven,Web Tools Platform或Eclipse插件为Eclipse完成?
您可以提供的答案越详细越好,因为我对所有这些技术都不具备全面的知识。我是一个把很酷的新东西粘在一起做原型的人,所以我很少有时间深入学习技术。我最强大的知识是Google Plugin for Eclipse,所以我希望尽可能地利用它,并尽可能少地使用Maven和Web Tools Platform。
非常感谢Stackoverflowers! :-P
迈克尔
答案 0 :(得分:0)
我在Google云平台支持中收到了Albert的以下答案:
经过深入研究并与我的团队一起回顾这个问题,似乎通过Eclipse工作并不像我们想要的那样简单。虽然可以将模块设置为GWT应用程序,但它不会被识别为GWT,因此通过右键单击上下文菜单无法进行编译。这是因为Eclipse插件无法识别模块,而企业应用程序项目类型的项目不允许将模块设置为GWT应用程序。
我建议您使用公共问题跟踪器[1]打开功能请求,以便将来添加该功能。与此同时,最简单的解决方法是完全按照我们的尝试进行操作,即在GWT应用程序中编写应用程序代码,然后在编译后将文件复制/粘贴到相应的目录中。另一种方法是在GWT目录上运行命令行工具[2]来编译项目。
我知道这些并非完美的解决方案,但它们可能对您有所帮助。
由于这应该回答你的问题,我会继续并在几天内结案。我也想借此机会感谢您对此事的耐心等待。和你一起工作很愉快。
此致
阿尔伯特 云平台支持
[1] Eclipse插件的谷歌插件:https://code.google.com/p/google-plugin-for-eclipse/ [2] GWT汇编:http://www.gwtproject.org/doc/latest/RefCommandLineTools.html