gpt4 book ai didi

maven - 我什么时候应该使用多模块 Maven 项目?

转载 作者:行者123 更新时间:2023-12-04 07:53:09 25 4
gpt4 key购买 nike

我是Maven的新手。也许这就是这个问题的原因:)

今天我尝试下载名为 Sonar Runner 的项目,看看它是如何工作的。这对我来说是非常奇怪的经历,因为这个项目有 4 个子模块:

  • 声纳转轮 - API
  • 声纳转轮 - 批处理
  • Sonar Runner - 分发
  • Sonar Runner - 实现

  • 它们分别有:17、2、8 和 13 个 java 文件。

    这让我想知道为什么它的粒度如此之细。我知道你不知道他们的理由是什么。但我很好奇可能是什么原因。

    到目前为止,我认为项目的规模是一个原因,或者是单独的团队在项目的不同部分工作。

    但是当项目有 40 个 java 文件时,我猜大小不是原因。

    当我使用多模块项目而不是一个大项目时,我得到了什么?

    我试图在谷歌中找到答案,但没有运气。

    编辑:我找到了这个: Is there any benefit in using Maven Multimodule when working in a small application?

    但项目仍然有 40 个 java 文件。把它分成 4 个子模块对我来说似乎很荒谬。

    还有其他好处吗?

    最佳答案

    我几乎总是在做多模块 Maven 项目——即使我只是在做一些开源实验。

    做多模块项目的原因有很多:

  • 代码的不同部分与不同的环境相关。您可能希望将 API 和实现或编译时工具与运行时所需的东西分开。
  • 将不同的功能组件放在不同的模块中是有意义的。
  • 单独的模块可能有自己的版本路线图。例如,一个 API 可能会在很长一段时间内保持非常稳定,但实现会经常更新。
  • 即使您正在做一个单一的 JAR 项目,您也可能需要一个带有测试工具的单独模块或单独的示例/演示/测试。
  • 即使您不需要全部,即使使用单个 JAR,创建父级通常很有用 pom和一个 child jar模块。并将组织内容移至父级 pom .
  • 如果您有循环依赖,您可能需要将一个模块拆分为多个。如果是 A 的一部分取决于 BB取决于 A 的一部分,您可能需要拆分 AA1A2 .
  • 我通常不喜欢在一个模块中混合手动编写和生成的代码。

  • 而且可能更多。

    这些原因很多,所以多年来我更喜欢从一开始就从父/子设置开始。我不记得我参与的单个项目,它会保持单模块。

    如果有原因的话,即使将 2 文件项目拆分为 2 个模块对我来说也不是可笑的。

    关于maven - 我什么时候应该使用多模块 Maven 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27191410/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com