当前位置: 首页 > 面试题库 >

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

邵刚洁
2023-03-14
问题内容

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


问题答案:

拆分应用程序对以下情况有意义:

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

  • 您可以在不同项目中重复使用模块中的代码。假设您的项目包含一些编写良好的通用代码,用于邮件发送。如果以后有另一个需要邮件发送功能的项目,则可以简单地重新使用现有模块或在其上进行构建(在另一个模块中,通过将其添加为依赖项)。

  • 从长远来看,更易于维护。也许现在看来这是一个小项目。在几个月后,情况可能会有所不同,然后您需要进行更多的重构,以将其拆分为逻辑单元(模块)。

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

关于WAR:您可以具有一个组装模块,该模块将所有内容放在一起并从所有相关模块中生成最终的WAR文件

最初,这似乎是一项更多的工作,但是从长远来看,模块化项目更易于使用和维护。大多数理智的开发人员更喜欢这种方法



 类似资料:
  • 我有一个Maven Java应用程序,我正在尝试进行对接。到目前为止,我有以下dockerfile,是我从这个答案中复制的。 如果我的应用程序是一个单模块项目,这将是很好的,但是因为它是多模块的,所以我假设我不能仅仅使用。 但是,这会在阶段出错: 注意,来自我的本地m2文件夹。

  • 嗨,我正在使用maven多模块项目和google cloudendpoint作为api管理,我能够成功地使用appengine devserver运行应用程序,但当我将它部署到appengine时,它显示如下错误。

  • 我有一个包含多个应用程序(不同但密切相关的微服务)的解决方案,这些应用程序共享通用且相当复杂的代码。该项目使用Maven,当前设置为: 我的问题是我想使用开发模式来获取更改,但我无法使其工作。对于单个Quarkus应用程序,它受到支持,并且可以从根文件夹使用quarkus:dev进行构建。对于两个Quarkus应用程序,不清楚启动的是哪一个。 我可以使用Maven的选项来选择我想要启动的那个,但是

  • 本文向大家介绍使用区块链技术有什么好处?相关面试题,主要包含被问及使用区块链技术有什么好处?时的应答技巧和注意事项,需要的朋友参考一下 回答:使用区块链技术的主要好处如下: 增强安全性 改进的可追溯性 节约成本 用户假名 不变性 交易的透明度 自动对帐 欺诈控制 中介服务不付款

  • 问题内容: 我的应用程序中有一些内存泄漏。它们都起源于一个特定的视图集群,我花了大量时间进行调整,并尝试减少尽可能多的上下文传递。这使我相信群集中使用的位图就是问题所在。因此,我考虑将WeakReferences用于所有对视图使用的位图的引用。我从未使用过WeakReference,并且不确定这是否是一个好的应用程序。任何机构都可以提供有用的指示或技巧吗? 问题答案: 因此,我考虑将WeakRef

  • null null 所以当我在Intellij中运行项目时,它启动了,我可以访问主模块控制器中定义的所有URL。但不是子模块控制器中的...看起来只加载了主模块。 下面是我的父pom.xml: 这里是我的主模块pom.xml: null