在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的springcloud项目。

本章及后面章节,我们使用的开发环境是 spring tool suite (sts)  + maven (当然你也可以使用IDEA + Gradle,目前使用的公司也很多)。

一、新建一个父maven project模块

File->new->other->maven->maven project

记得勾选红框,我们仅仅只是需要该项目的pom.xml文件

如果生成后,有src文件,我们删除该文件,只保留pom.xml文件

修改pom.xml文件内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.haly</groupId><artifactId>springcloud</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>springcloud</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies>      <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

注意: 很多同学在搭建项目的过程中,引入依赖时,pom文件总是报错,这一般是springboot和springcloud的版本不一致造成。

这个系列所有章节,我们使用的版本为    springboot :2.1.4.RELEASE        springcloud:Greenwich.SR1

我们新建这个父工程后,发现它其实只有一个pom文件,没有什么业务功能,但是工作中我们都会新建一个这样的项目目录,它的作用如下

1. 工作中,我们整个项目的名称就是这个maven项目的名称,在svn中拉取项目下,只要拉这个主工程的分支就行了。

2. 它的pom文件会定义为父pom,后续的module工程可以继承该pom,所以很多module工程共用的配置,都可以放到这里。

二、新建一个springcloud-eureka-server子模块

选择主项目springcloud,右键->Maven->new maven module project

生成项目目录结构如下:

注意:有些同学新建子项目完成后,项目的展示都是并排着,没有展示出父子关系,需要调整一个展示形式,才会出现上面的项目结构。

点击上图标红的地方 -> projects Presentation - > Hierarchical

如果生成的springcloud-eureka-server模块没有resources目录

springcloud-eureka-server上右键点击项目-> new->Source Folder

三、新建一个springcloud-eureka-client子模块

参考新建springcloud-eureka-server模块的步骤,新增一个springcloud-eureka-client模块

生成的项目结构如下:

这时,我们去父项目springcloud中打开pom.xml文件,会发现自动增加了新建子模块的引入

<modules>
   <module>springcloud-eureka-server</module>
   <module>springcloud-eureka-client</module>
  </modules>

四、总结:

通过上面的步骤,我们已经搭建好了一个多模块的springcloud项目,但是这仅仅只是一个项目架构,如果需要运行起来,我们还需要做如下三步

1. 修改子模块的pom.xml文件,增加对应模块功能需要的依赖包

2. 在src/main/resources目录下,新增application.properties文件,配置项目的配置项

3. 在src/main/java目录的com.haly包下,新增对应模块的启动类

如何运行多模块springcloud项目,请看下一章节:一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)

转载于:https://www.cnblogs.com/haly/p/10863055.html

一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目相关推荐

  1. 一起来学Spring Cloud | 第五章:熔断器 ( Hystrix)

    在微服务项目中,一个系统可以分割成很多个不同的服务模块,不同模块之间我们通常需要进行相互调用.springcloud中可以使用RestTemplate+Ribbon和Feign来调用(工作中基本都是使 ...

  2. SpringBoot | 第一章:第一个SpringBoot应用

    2019独角兽企业重金招聘Python工程师标准>>> SpringBoot | 第一章:第一个SpringBoot应用 springboot简单介绍 概述 随着动态语言的流行(Ru ...

  3. 视频教程-①Spring Cloud 第一季(初级入门篇)-Java

    ①Spring Cloud 第一季(初级入门篇) 2011年毕业后在澳门 遊澳集团(UO Group)旗下某IT科技公司从事 android,php,j2ee开发工作,负责 国际短信发送系统.银联支付 ...

  4. 告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)

    告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目 一.前言 二.如何选择版本 2.1 SpringCloud 和 Spring Boot 版本选型 2.1. ...

  5. 跟我学Spring Cloud(Finchley版)-10-Feign深入

    上一节( 跟我学Spring Cloud(Finchley版)-09-Feign )讲了Feign的入门姿势并深入对比了RestTemplate,本节来深入探讨Feign的高级特性.总的来说,Feig ...

  6. 跟我学Spring Cloud(Finchley版)-07-Ribbon入门

    经过前文讲述,我们已经实现了服务发现.本节来解决 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 提到的如下问题: 负载均衡如何考虑?难道得在电影微服务和用户微服务之间加个 ...

  7. hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix

    Feign默认已经整合了Hystrix,本节详细探讨Feign使用Hystrix的具体细节. 服务降级 1 加配置,默认Feign是不启用Hystrix的,需要添加如下配置启用Hystrix,这样所有 ...

  8. 跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析

    为什么80%的码农都做不了架构师?>>>    第2节( 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 )说过: 地址硬编码问题--电影微服务中将用户微 ...

  9. 【趣学算法】第一章 算法之美(上)

    14天阅读挑战赛 [趣学算法]第一章 算法之美(上) 文章目录 [趣学算法]第一章 算法之美(上) 1.打开算法之门 2.妙不可言---算法复杂性 2.1 算法的引入 [算法的定义] [算法题] [& ...

  10. 北京邮电大学计算机网络课件,北京邮电大学计算机网络课件第一章:物理层.ppt...

    北京邮电大学计算机网络课件第一章:物理层.ppt 计算机网络 第2章物理层 2 第2章物理层 2 1物理层的基本概念2 2数据通信的基础知识2 2 1数据通信系统的模型2 2 2有关信道的几个基本概念 ...

最新文章

  1. 重大通知:社交系统ThinkSNS+ 发布公告!
  2. 异常: java.security.InvalidKeyException: Illegal key size
  3. 阿里云服务器1M带宽是多少
  4. VC++动态链接库(DLL)编程深入浅出(zz)
  5. 马思伟:视频领域是个海洋,可以游泳、冲浪、潜水和远航
  6. linux程序已经在后台运行冻结了_如何使程序在Linux后台运行
  7. Perl学习笔记(六)--文件(一)
  8. SQL Server相关知识
  9. 自然场景文本检测识别技术集合(转)
  10. 【codevs1220】数字三角形
  11. 数学家刘徽李善兰陈景润华罗庚
  12. Mac系统下 安装并使用DOSBox编写汇编语言
  13. solaris java 安装_solaris中安装jdk环境
  14. 产品生命周期管理(PLM)
  15. 实用工具系列 - Pycharm安装下载使用
  16. 基于量化交易回测的金融股票案例基础知识
  17. 实时vad(替换webrtcvad)
  18. 工作 10 年后,我突然决定读硕士了!
  19. 《金蝶ERP-K/3完全使用详解》—— 导读
  20. Discuz x2 数据字典

热门文章

  1. 【转载】 CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解
  2. Java线程池 面试考点
  3. 关于《统计学习方法》中第三章构造kd树算法中的中位数问题
  4. 脏写 脏读 不可重复读 幻读 读偏差 写偏差 丢失更新 示例
  5. 计算机环境变量win10,Win10系统path环境变量怎么设置
  6. js百度地图小车html,百度地图web开发(基于javascript)
  7. Php的入栈,PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
  8. linux c自写时钟,关于internal_add_timer函数(linux/kernel/timer.c中定义的)的一个问题
  9. Leetcode之合并区间
  10. java基础总结06-常用api类-时间日期类