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