如何在不同的模块中处理应用程序引擎模块Java中的常见类?

如何在不同的模块中处理应用程序引擎模块Java中的常见类?,java,module,google-app-engine,gae-module,Java,Module,Google App Engine,Gae Module,目前我正在开发谷歌应用程序引擎模块。我指的是 我对如何处理模型类或普通类感到困惑。以前我使用后端,因为所有代码都保存在项目中,但现在使用模块时,我不知道如何管理公共代码。我将公共逻辑分解到不同模块共享的单独JAR中。我创建了Appstart()一个基于maven的样板多模块应用程序引擎应用程序,演示了Guice、Jersey、Objectify、Cloud EndPoints等技术的使用,它有3个模块:fronend模块、backend模块和common模块,其中包括包括模型在内的所有公共类,应

目前我正在开发谷歌应用程序引擎模块。我指的是


我对如何处理模型类或普通类感到困惑。以前我使用后端,因为所有代码都保存在项目中,但现在使用模块时,我不知道如何管理公共代码。

我将公共逻辑分解到不同模块共享的单独JAR中。

我创建了Appstart()一个基于maven的样板多模块应用程序引擎应用程序,演示了Guice、Jersey、Objectify、Cloud EndPoints等技术的使用,它有3个模块:fronend模块、backend模块和common模块,其中包括包括模型在内的所有公共类,应该向您展示如何管理公共代码的示例。该文件夹包含以下模块/maven项目

  • appstart后端
  • 应用程序启动公用程序
  • 应用启动耳
  • 应用程序启动前端
后端模块仅包含后端所需的代码,前端包含前端代码,公共模块包含公共代码。项目设置在父文件夹“appstart”中,父文件夹为maven POM。公共模块包含在前端和后端,使用maven依赖项:

<!-- Common module dependency -->
    <dependency>
        <groupId>uk.co.inetria.appstart</groupId>
        <artifactId>appstart-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

uk.co.inetria.appstart
应用程序启动公用程序
1.0-快照

当您更改公共代码时,可以运行mvn clean,然后从appstart ear目录进行安装,并且它应该更新所有相关项目。我希望这有帮助

,但每次,当我更改了公共代码中的某些行时,我都必须再次构建jar,并且必须分别添加不同的模块。是的,这是真的。我认为另一种选择是将公共代码放在一个单独的源目录中,不同的模块包含在它们的源路径中。请投票支持这个问题,这样它就可以被修复:GAE WTP Eclipse插件不支持共享引用项目(共享代码):这肯定应该被标记为正确答案。我整天都在寻找如何做到这一点,这是迄今为止我发现的唯一有效/干净的方法。我不使用基于Maven的项目,因此不喜欢此解决方案。@omerio有没有一种方法可以将appstart前端用作主工件而不使用ear?如果是这样,那会是什么样子?我现在正在做一个类似这样的项目,但是没有耳朵是我为什么要问的。谢谢大家!@j_walker_dev是的,您可以单独使用前端模块,只需将cd放入前端目录并部署到appengine,还可以将公共配置从父pom移动到前端pom