发现问题
当我点开自己的毕业设计,发现我对一个Java项目(Projects)和模块(Modules)的关系,非常的模糊。比如我创建了一个myworkspace
的文件夹,并将这个文件夹拖动到IDEA中打开,就会创建一个名称为myworksapce
的module。
把myworksapce文件夹拖动到IDEA,自动创建了一个.idea的文件
此时,点开Project Structure
自动生成了一个名叫myworkspace的module
同理,如果直接在IDEA中,new一个Project,效果也是一样的
所以我想知道Project和Modules到底有该怎么创建,特别是在分布式/微服务系统中。
单体项目
假设现在一个单体项目tlias-web-management
已经存在,并且开发完毕,现在从这个项目中,拆分出3个子模块,并且再添加一个父模块tlias-parent
所以此时项目结构为
当然也可以把项目结构调整为
上面两种工程结构,都是可以正常使用的,没有一点问题。 只不过,第二种结构,看起来,父子工程结构更加清晰、更加直观。
注意:虽然分模块拆分了,但还是单体架构,打包之后,我们只需要拿到tlias-web-management
这个jar包就行了
分布式(微服务)项目
微服务项目也有两种拆分模式
第一种:独立Project
每一个微服务都是一个Project,把所有的微服务Project存在一个文件夹中
第二种:Maven聚合
一个Project,每一个微服务都当成一个Module
注意:每一个微服务都要独立打成jar包,独立部署