我正在创建一个新的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
我们应该何时应用多模块或单模块项目>请给我一些建议。
答案 0 :(得分:5)
我在Maven工作的所有产品都是多模块的。这是因为他们往往很大。但是,当我创建自己的宠物项目时,它们通常是单模块项目。
通常,随着产品的增长,需要将它们组织成多个模块。有些项目从单个模块开始,随着它们的增长而分开。由具有更多经验的开发人员创建的其他人已经分开,因为开发人员已经知道代码将如何增长以及如何组织代码。
具体来说,从你的列表,“核心/公共,业务服务,存储库,安全性,集成,ldap,用户管理”,我会将“commons”分成它自己的模块,因为它闻起来像它可以在其他模块上重用项目。其他部分都可以融入一个模块,但我需要更深入地了解项目。
答案 1 :(得分:1)
这取决于您的要求。如果您想使用.sh
或.bat
运行此功能,则应该有单个目标(单个jar
和其他库)。
如果您的项目构建为API
,最好将您的构建作为多模块构建。