我正在使用 Eclipse 的 Google 插件,但遇到以下问题:
项目 (A) 包含一个基于 GWT 的 GUI,与运行在 GAE 上并使用 JPA 的服务器进行通信。 此外,还有一个项目 (B) 将旧数据迁移到新数据存储。 由于这两个项目都使用通用的数据模型,因此我将一组接口(interface)和枚举提取到一个单独的项目 (C) 中,并设置其他两个项目对其的依赖关系。
Java 应用程序项目 (B) 似乎可以工作,但 GWT/GAE 项目 (A) 仅当我手动将类复制到 WEB-INF/classes 目录中时才可以工作。显然这仅在使用托管模式时才有效。
有人知道如何在 Eclipse 中配置这样的多项目设置吗?
此外,我不确定多项目布局是否是最佳解决方案。这组通用模型对象用于所有 3 个领域:
- 用户客户端(GWT项目编译标准文件夹客户端并共享)
- 服务器端(为 GWT-RPC 提供服务、上传和不同的 feed)
- 迁移应用程序(将旧数据发布到上传 servlet)
有哪些架构选项可以将重复类的数量保持在最低限度?
最佳答案
为了使您的 GAE 项目能够使用另一个 java 项目,首先您必须将第二个项目添加到第一个项目的构建路径中。这仅解决了问题的一部分,允许您在开发中引用您需要的类。
另一个问题是,一旦您在开发模式下启动 GAE 项目,它将无法找到其他项目的类。你需要做的就是将项目导出为jar(名称无关紧要,类可以编译也可以不编译),并将ir放入WEB-INF/lib文件夹中。您不需要将 jar 添加到构建路径,您可以继续使用项目引用,但请记住,每次在其他项目中进行更改时,您都需要导出它并用新的 jar 替换该 jar。我还没有找到更好的方法来做到这一点,但至少如果您使用此文件夹而不是 WEB-INF/classes,它不会被 GAE 删除。
至于架构选项,我会将客户端和服务器放在一个项目中,这样可以简化开发。然后您可以从迁移应用程序引用该项目。我认为这样您可以更轻松地维护您的主要项目,而不会过多影响其他项目(我认为迁移项目的生命周期会短得多,因此从长远来看,它并不像另一个项目那么重要)。
关于java - 如何在 GAE 部署中包含外部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770266/