没做过大项目,但我会建大项目

刚出来实习的时候,参与的项目使用的还是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、确认项目信息并完成父级项目创建

image

4、父级项目概览

image

这就是一个再普通不过的maven项目,下面我们需要在这个项目中新建子module。

5、创建聚合项目

我们在微服务开发模式下经常需要开发一个接口服务,同时可能还需要一个用于同步数据的服务,如果我们把这两个服务散落在root项目目录下,有时候因为命名而隔得很远,找代码也不方便。

这时候就需要一个聚合项目,该项目用于编排某个服务项目的原子项目(xxx),如服务的实现项目("xxx-service"),服务的接口项目("xxx-api"),服务的同步数据项目("xxx-sync")。

这里我们就创建一个聚合项目spring

5.1 创建“spring”项目

在root项目上右键选择new->module

image
5.2 创建一个maven的“spring”项目
image

点击next,进入下一步

5.3 填写maven的坐标信息
image

注意这里因为是在root下新建子module,所以这里有个“Parent”选项,即继承了root项目,填写下artifactId即可。

点击next,进入下一步

5.4 确认项目信息并完成聚合项目创建
image
5.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文件用于编排子项目。

至此,我们完成了基本父级项目的创建,聚合项目的创建以及聚合项目下子项目的创建。

看完这边,相信再复杂的目录结构层次也难不倒你了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,926评论 6 342
  • 问题: 当tableView的数据源是一个分组的数据时, 有时候需要根据index来反推它的NSIndexPath...
    一个纠结的人阅读 416评论 0 0
  • 秋思|其一 雨落黄昏天向晚, 回首往昔万般事。 木叶秋衣沾烟岚, 独倚紫陌一江寒。 秋雨|其二 千户颦颦隐金莲, ...
    苏楠雮阅读 289评论 0 1
  • 当一个人拒绝接受你的好 他不曾想过 当初奢求你对他好的时候的模样 人怎么可以 给你温暖就给你温暖 让你习惯 让你失...
    多年以后DNYH阅读 114评论 0 0