单模块与多模块maven项目

时间:2014-07-23 04:02:34

标签: maven maven-module

我正在创建一个新的java web项目。这个Web应用程序将有许多模块,如核心/公共,业务服务,存储库,安全性,集成,ldap,用户管理......我想知道是否应该将每个模块分成每个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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

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

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