我正在尝试将现有的java项目转换为maven项目。我想到了以下方法,但我不确定我是否朝着正确的方向前进。
第一种方法是将所有实体、存储库、服务、常量、实现类分组到 1 个单独的 Maven 模块/项目中。
第二种方法是将所有服务类放在各自的 Maven 模块/项目中,并将其余实体、存储库类放入基本模块中。
我应该采用哪种方法?
方法1
finance-module
- com.example.finance.entities
- com.example.finance.repository
- com.example.finance.service
order-module
- com.example.order.entities
- com.example.order.repository
- com.example.order.service
code-module
- com.example.code.entities
- com.example.code.repository
- com.example.code.service
方法2
finance-module
- com.example.finance.service
order-module
- com.example.order.service
code-module
- com.example.code.service
base-module
- com.example.finance.entities
- com.example.finance.repository
- com.example.order.entities
- com.example.order.repository
- com.example.code.entities
- com.example.code.repository
最佳答案
您拥有的第一种方法是按功能拥有文件夹的经典案例,而第二种方法是按类型拥有一种文件夹(我应该这样调用它)。尽管两种方法各有利弊,但个人选择是按功能组织模块(方法 1)。
这是我的 2 美分原因:
a) 随着应用程序大小的增长,当有很多包时,转到特定文件是一个问题。简而言之,是导航问题。
b) 您可以让多个团队独立处理这些不同的模块,并设计一个父 pom 来为发布构建子 pom/模块,同时仍保持代码分离
c) 模块变得松散耦合和封装,由于 A-> B 类、B->A 类问题,一个模块中的更改很可能不会破坏其他构建
关于java - Spring Java Maven项目+模块设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802612/