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

刚出来实习的时候,参与的项目使用的还是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文件用于编排子项目。

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

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