大型GWT项目的结构 上下文 多maven模块或单maven模块结构的大型项目 问题: 您最终使用了多maven模块还是单maven模块结构 细节

大型GWT项目的结构 上下文 多maven模块或单maven模块结构的大型项目 问题: 您最终使用了多maven模块还是单maven模块结构 细节,gwt,structure,multi-module,Gwt,Structure,Multi Module,如果您从事过一个大型项目,该项目的开发周期很长,并且包含很多功能(即,不是一个琐碎的项目),那么您是选择将该项目拆分为多个maven模块还是采用单模块方法 例如,使用多模块结构,在运行诸如mvn gwt:eclipse之类的maven命令时崩溃(请参阅)。我想这会在单模块GWT项目中很好地工作。可能还有其他类似上述的命令存在多模块结构问题 但是,多模块结构可以带来更快开发的好处,也就是说,如果将“服务器”与“客户端”模块分离,则可以单独编译业务逻辑(服务器)并将其打包到生成的web存档中。编译G

如果您从事过一个大型项目,该项目的开发周期很长,并且包含很多功能(即,不是一个琐碎的项目),那么您是选择将该项目拆分为多个maven模块还是采用单模块方法

例如,使用多模块结构,在运行诸如mvn gwt:eclipse之类的maven命令时崩溃(请参阅)。我想这会在单模块GWT项目中很好地工作。可能还有其他类似上述的命令存在多模块结构问题

但是,多模块结构可以带来更快开发的好处,也就是说,如果将“服务器”与“客户端”模块分离,则可以单独编译业务逻辑(服务器)并将其打包到生成的web存档中。编译GWT代码大约需要20秒,因此,如果只修改服务器包,从长远来看可以节省大量时间

在处理多模块/单模块项目时,您还遇到过哪些类似上述情况

谢谢大家!

一些注意事项:

  • 在开发服务器上,您不必“手工”编译代码:开发服务器自动编译代码并重新加载。只需保持dev服务器运行,更改一些代码,然后在浏览器中重新加载页面。(仅当您更改现有类且不更改项目结构时,此选项才成立)

  • 多个maven模块与多个GWT模块无关

  • 如果您有在不同环境中执行的代码,您可能希望有多个GWT模块(=多个入口点):例如,您有具有完全不同代码基础的web和移动站点。然后将项目分为三个模块:
    web
    mobile
    common
    。然后您可以在
    web
    mobile
    中引用
    common

  • 多个GWT模块的另一种情况是,出于某种原因,您希望拥有多个主机(条目)HTML页面。很少会有这样的情况,例如在集成OpenID时需要重定向。另一种情况是,您已经有了现有的Web页面,在这些页面中,您只是为了添加一些功能而添加GWT

  • 不要为了减少下载量而将GWT项目拆分成多个模块:相反

  • 如果您的主要抱怨是gwt编译时间过长,请阅读:


  • 我们从多个模块开始,最终合并为一个模块。主要原因是模块的维护是一个巨大的开销。每个模块都有一个pom来构建UI、RPC层和后端服务。因此,有30个模块,我们有90个maven项目需要管理

    合并模块将90个maven项目分成3个,其中一个是父级pom

    这大大降低了维护开销并缩短了构建时间。GWT的编译器是出了名的慢,所以用一个单一的编译器来解析源文件一次而不是多次会使事情变得更快


    另一方面,单个模块意味着编译器将所有内容一次写入内存。如果在代码中插入拆分点,那么查找拆分点的速度可能会非常慢。因此,如果您打算拆分,可能值得考虑将这些要点放在何处,并相应地安排项目。

    您是指多个gwt模块还是多个maven模块?这两者之间有很大的区别。谢谢你一贯和全面的答复!这并不是为了减少下载量,我只是想要更快的开发,从长远来看,代码要在客户端逻辑和服务器逻辑之间分离。原因是,如果我更改了业务逻辑中的某些内容,并且所有代码都在同一个maven项目中(不要与GWT模块混淆),我就必须执行“mvn包”另一个原因是,如果我想将服务器端代码托管在另一个web容器(即tomcat)中,那么拥有“服务器”maven项目将非常有帮助。我还没有多个环境,所以不需要多个GWT模块我不是maven方面的专家,但有两个模块(因为您通过maven编译/运行)似乎是合乎逻辑的:server和gwtwe我们在server+GWT项目中使用maven,但在开发过程中,我总是通过Intellij的运行配置运行,因为它不需要完全编译