在小型应用程序中工作时使用Maven Multimodule有什么好处吗?

Mar*_*rco 7 java web-applications maven multi-module

我们正在使用不同的架构层构建一个小型应用程序,例如域,接口,基础架构和应用程序.这遵循洋葱DDD模型.现在我想知道将应用程序拆分为多模块maven项目是否有任何好处.据我所知,现在似乎使事情变得比需要的更困难.整个应用程序将作为单个WAR文件部署到Tomcat容器中.

car*_*ing 11

拆分您的应用程序对以下内容有意义:

  • 当项目的某个部分需要具有新功能或错误修复时,您可以只关注该模块并仅运行测试.编译所有代码的一小部分并运行相关测试可加快您的工作.

  • 您可以在不同项目中重用模块中的代码.我们假设您的项目包含一些编写良好的通用足够的邮件发送代码.如果您以后有另一个需要邮件发送功能的项目,您只需重新使用现有模块或在其上构建(在另一个模块中将其添加为依赖项).

  • 从长远来看,易于维护.也许现在它似乎是一个小项目.在几个月内,事情可能看起来不同,然后你需要做更多的重构,将事物分成逻辑单元(模块).

  • 概念清晰度(由Adriaan Koster添加).

关于WAR:您可以拥有一个汇编模块,它将所有相关模块放在一起并生成最终的WAR文件.

最初,这可能看起来更多,但从长远来看,模块化项目更容易使用和维护.大多数理智的开发人员更喜欢这种方法.

  • 另一个好处是:它强化了您的架构的概念清晰度. (2认同)

Pet*_*rey 5

使用多个模块会强制您拥有依赖关系层次结构.您有一个独立的模块,不依赖于任何其他模块.你有另一个只依赖于那个.它可能看起来比允许任何东西依赖于任何其他东西更难,但这种方法会导致一堆混乱的依赖关系,以后很难修复.

如果您尝试遵循分层模型,我建议您将每个图层放在不同的模块中.这将确保您不会破坏模型.