【问题标题】:Single-module vs Multi-modules maven project单模块 vs 多模块 Maven 项目
【发布时间】:2014-09-14 02:44:50
【问题描述】:

我正在创建一个新的 java web 项目。这个web应用程序会有很多模块,比如core/commons,业务服务,repository,security,integration,ldap,user management,.... 不知道是应该把每个模块分离到每个maven项目(jar文件)还是创建项目将所有模块的所有 java 包都包含在一个 maven 项目中。

Structure of Multi modules maven project

   mycompany-core
   mycompany-repository
   mycompany-api
   mycompany-usermanagement
   mycompany-business
   mycompany-web

Structure of Single module project:

   mycompany-web
       |___ src
             |____ main
                    |____ java
                            |____ com.mycompany.core
                            |____ com.mycompany.repository
                            |____ com.mycompany.business
                            |____ com.mycompany.controller

我们应该什么时候应用多模块或单模块项目>请给我一些建议。

【问题讨论】:

    标签: maven maven-module


    【解决方案1】:

    我在 Maven 中开发的所有产品都是多模块的。这是因为它们往往很大。但是,当我创建自己的宠物项目时,它们通常是单模块的。

    通常,随着产品的增长,它们需要被组织成多个模块。一些项目从一个单独的模块开始,随着它们的增长而被拆分。其他的,由更有经验的开发者创建,已经被划分了,因为开发者已经知道代码将如何增长以及需要如何组织。

    具体来说,从您的列表中,“核心/公共、业务服务、存储库、安全性、集成、ldap、用户管理”,我会将“公共”分离到它自己的模块中,因为它闻起来可以在其他模块上重用项目。其他部分都可以放在一个模块中,但我需要对项目有更多的了解。

    【讨论】:

    • 是的,其他模块将依赖于 core/commons 模块。谢谢你的回答:)
    【解决方案2】:

    这取决于您的要求。如果你想使用.sh.bat 运行它,你应该有一个目标(单个jar 和其他库)。

    如果您的项目构建为API,最好将您的构建作为多模块之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-12
      • 2018-02-06
      • 1970-01-01
      • 2021-02-09
      • 2011-01-04
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多