2014-07-23 220 views
6

我正在创建一个新的java web项目。这个Web应用程序将有许多模块,例如核心/公用程序,业务服务,存储库,安全性,集成,LDAP,用户管理....我想知道是否应该将每个模块分隔到每个Maven项目(jar文件)或创建项目其中包括所有模块的所有java包到单个maven项目中。单模块与多模块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 

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

回答

5

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

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

具体来说,从您的列表中选择“core/commons,business service,repository,security,integration,ldap,user management”,我会将“commons”分成它自己的模块,因为它闻起来可以重复使用其他的项目。其他部分都可以放入一个模块,但我需要更多的了解该项目。

+0

是的,其他模块将取决于核心/公共模块。感谢您的回答 :) – Barcelona

1

这取决于您的要求。如果您想使用.sh.bat运行此应用程序,则应该有单个目标(与其他库单个目标为jar)。

如果您的项目构建为0​​,最好将您的构建作为多模块构建。