一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目
Posted haly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目相关的知识,希望对你有一定的参考价值。
在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>Finchley.RELEASE</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:Finchley.RELEASE
我们新建这个父工程后,发现它其实只有一个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)
以上是关于一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目的主要内容,如果未能解决你的问题,请参考以下文章