没做过大项目,但我会建大项目
刚出来实习的时候,参与的项目使用的还是SSH框架。
那时候还在使用SVN进行版本管理,常常在合并代码的时候遇到各种莫名其妙的问题。
那时候使用着曾经宇宙最好用的JAVA IDE Eclipse写代码,也没有觉得界面简陋影响编码。
那时候还不知道啥时微服务,只知道有需求了就把代码往单体项目的代码里加,而且是前端和后台代码放一起的那种。什么Vue、React、Angular,不存在的,JQuery搞定一切。
因为项目小,或者因为业务并不复杂,虽然项目代码都放一块,但是勉强还可以看,找相关的代码也算比较快。
后来,慢慢接触到了一些大点的项目,而且微服务的设计理念也更加盛行和深入人心。所以,我们会发现在当今宇宙最好的JAVA IDE Intellij IDEA中多了越来越多的微服务项目,日益膨胀的业务,让我们在找相应的项目以及代码的时候力不从心。
所以,这时候项目的编排就很重要,换句话说就是,大项目应该有大项目的样子。这篇就来看看我们如果在Intellij IDEA中搭建项目目录结构清新的大项目。
项目结构对比
项目划分前
image这时候如果要添加代码,我们会在项目里面通过创建各个package用于区分业务代码,或者新建平级的module。
项目划分后
如何创建有层次的大项目框架
1、创建root项目
点击File->new->Project,点击图中的左侧的maven,创建一个maven父级项目
image点击next,进入下一步
2、填写maven坐标项目
因为创建的是maven项目,所以需要定义groupId和artifactId,自己填写即可
image点击next,进入下一步
3、确认项目信息并完成父级项目创建
image4、父级项目概览
image这就是一个再普通不过的maven项目,下面我们需要在这个项目中新建子module。
5、创建聚合项目
我们在微服务开发模式下经常需要开发一个接口服务,同时可能还需要一个用于同步数据的服务,如果我们把这两个服务散落在root项目目录下,有时候因为命名而隔得很远,找代码也不方便。
这时候就需要一个聚合项目,该项目用于编排某个服务项目的原子项目(xxx),如服务的实现项目("xxx-service"),服务的接口项目("xxx-api"),服务的同步数据项目("xxx-sync")。
这里我们就创建一个聚合项目spring
5.1 创建“spring”项目
在root项目上右键选择new->module
image5.2 创建一个maven的“spring”项目
image点击next,进入下一步
5.3 填写maven的坐标信息
image注意这里因为是在root下新建子module,所以这里有个“Parent”选项,即继承了root项目,填写下artifactId即可。
点击next,进入下一步
5.4 确认项目信息并完成聚合项目创建
image5.5 聚合项目概览
image注意这里聚合项目“spring”已经创建成功,点击root项目的pom文件,可以看到已经多了<modules>属性标签,如右图所示。
6、创建聚合项目下的子项目
有了聚合项目,我们就可以在“spring”下创建子项目了,具体步骤如下
6.1 创建聚合项目下的子项目
在“spring”项目上右键new->module,这时候我们选择创建一个springboot的项目
image点击next,进入下一步
6.2 填写项目基本信息
填写好springboot项目的maven坐标信息
image点击next,进入下一步,一直到确认信息页面
6.3确认项目信息
image注意这里默认content root和module file location只到/Users/jackie/workspace/root/spring,但是我们要创建的是springboot项目,位于聚合项目下的子项目。所以需要将两个变量的信息改为如图所示,即加上新建项目的名称信息。
我在这里尝试过几次,都没有加上子项目的名称,导致新建的项目一直和聚合项目平级,无法起到聚合的目的,所以这里需要格外注意。
6.4 聚合项目下的子项目概览
image这里“spring”作为聚合项目,可以将该目录下的src目录删除,仅保留pom文件用于编排子项目。
至此,我们完成了基本父级项目的创建,聚合项目的创建以及聚合项目下子项目的创建。
看完这边,相信再复杂的目录结构层次也难不倒你了。