SpringCloud如何搭建一个多模块项目

作者:young码农 时间:2022-10-22 13:33:39 

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

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

一、新建一个父maven project模块

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

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

SpringCloud如何搭建一个多模块项目

SpringCloud如何搭建一个多模块项目

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

SpringCloud如何搭建一个多模块项目

修改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

SpringCloud如何搭建一个多模块项目

SpringCloud如何搭建一个多模块项目

SpringCloud如何搭建一个多模块项目

生成项目目录结构如下:

SpringCloud如何搭建一个多模块项目

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

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

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

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

SpringCloud如何搭建一个多模块项目

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

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

生成的项目结构如下:

SpringCloud如何搭建一个多模块项目

这时,我们去父项目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

标签:SpringCloud,多模块
0
投稿

猜你喜欢

  • 利用Intellij Idea连接远程服务器实现远程上传部署功能

    2022-05-31 13:15:54
  • 教你如何用好 Java 中的枚举

    2022-11-03 10:31:21
  • Java数据结构之图的基础概念和数据模型详解

    2022-03-25 11:27:04
  • Java实现按行读取大文件

    2022-11-05 13:56:57
  • Java编程使用箱式布局管理器示例【基于swing组件】

    2022-08-12 14:09:14
  • c#实现输出本月的月历

    2023-07-18 19:41:33
  • Java Bean与xml互相转换的方法分析

    2021-08-12 13:34:00
  • C#启动进程的几种常用方法

    2023-06-18 04:13:48
  • Java对List进行排序的两种实现方法

    2022-10-31 13:40:06
  • java中TreeMap排序的示例代码

    2023-02-17 15:39:30
  • idea设置JVM运行参数的几种方式

    2023-05-26 14:57:33
  • java实现双色球彩票游戏

    2022-06-29 12:39:45
  • Java将对象保存到文件中/从文件中读取对象的方法

    2022-06-18 21:26:42
  • Spring Security基于json登录实现过程详解

    2023-12-07 07:15:18
  • obix协议在java中的配置和使用详解

    2023-11-25 20:59:42
  • 什么是Java自旋锁

    2022-09-22 22:10:55
  • Java实现考试系统

    2023-11-18 04:15:03
  • 利用Springboot+Caffeine实现本地缓存实例代码

    2022-05-31 09:13:33
  • java多线程累加计数的实现方法

    2021-07-19 12:10:36
  • Java实现多用户注册登录的幸运抽奖

    2023-07-30 11:57:44
  • asp之家 软件编程 m.aspxhome.com