如何在GAE部署中包含外部类?

时间:2010-05-05 02:29:27

标签: java google-app-engine gwt jpa gwt-rpc

我正在使用Eclipse的Google插件,并遇到以下问题:

项目(A)包括一个基于GWT的GUI,与在GAE上运行并使用JPA的服务器通信。 此外,还有一个项目(B)将旧数据迁移到新数据存储区。 由于这两个项目都使用通用数据模型,因此我将一组接口和枚举提取到一个单独的项目(C)中,并将其他两个项目依赖于它。

Java App项目(B)似乎有效,但GWT / GAE项目(A)只有在我手动将类复制到WEB-INF / classes目录中时才有效。显然这仅在使用housted模式时有效。

有人知道如何在Eclipse中配置这样的多项目设置吗?

另外,我不确定多项目布局是否是最佳解决方案。所有3个区域都使用了一组通用模型对象:

  • 用户客户端(GWT项目编译标准文件夹客户端和共享)
  • 服务器端(为GWT-RPC提供服务,上传和使用不同的供稿)
  • 迁移应用程序(将旧数据发布到上传servlet)

有哪些架构选项可以最大限度地减少重复类的数量?

1 个答案:

答案 0 :(得分:0)

要使GAE项目使用其他Java项目,首先必须将第二个添加到第一个构建路径中。这只解决了问题的一部分,允许您引用开发中所需的类。

另一个问题是,一旦在开发模式下启动GAE项目,它将无法找到其他项目的类。您需要做的是将项目导出为jar(名称无关紧要,类可以编译或不编译),并将ir放在WEB-INF / lib文件夹中。您不需要将jar添加到构建路径,您可以继续使用项目引用,但请记住,每次在其他项目中进行更改时,您需要将其导出并将jar替换为新的jar。我还没有找到更好的方法,但至少如果你使用WEB-INF /类的这个文件夹,它将不会被GAE删除。

至于架构选项,我会将客户端和服务器都放在一个项目中,这样可以简化开发。然后,您可以从迁移应用程序中引用该项目。我认为这样你就可以更轻松地维护你的主项目,而不会过多地影响其他项目(我认为迁移的生命周期要短得多,所以从长远来看,它没有那么重要)。 / p>