我应该将客户端和服务器放在同一个jar中

时间:2015-01-07 08:14:11

标签: maven architecture client server

在使用spring-boot创建新的Web应用程序时,我想知道一个哲学问题:对于服务器端应用程序和静态Web内容,只有一个maven模块(以及一个jar)的最佳实践客户端(生成另一个jar,也许?),或者最好是为服务器配备一个maven模块,为客户端设置另一个maven模块?

换句话说,拥有这个maven架构是否更好:

MyProject-parent
    - MyProject

还是这个?

MyProject-parent
    - MyProject-server
    - MyProject-html-client
    - MyProject-mobile-client
    - ...

由于我想拥有一个浏览器客户端和一个移动客户端,我很想说拥有单独的模块是个好主意。但是,使用Spring-boot,可以生成一个胖罐,即一个包含所有其他罐的罐子。因此,我认为推荐的架构只有一个maven模块。

那么有一个“更好”的解决方案吗?如果是的话,你能给我参数吗?

1 个答案:

答案 0 :(得分:0)

我更喜欢多模块方法,原因如下:

  • 这个项目会越来越好,这样组织得更好, 这意味着将来如果你打破就更容易维护 一开始就适当的模块,你不会失去 是时候重构并将其拆分成不同的模块。
  • 最好是“分层”

  • 最好是修复错误或制作新的功能,因为你可以 只关注一个模块并仅为该模块运行测试。

  • 当您使用Maven时,它可以帮助很多依赖项 使用一个maven命令构建它,它可以处理 建立订单。所以我看不出使用单个模块的任何优势 你的情况。
  • 您可能需要在不发布的情况下发布MyProject-mobile-client MyProject-html-client将来的任何时候,以防您计划 使用maven release。