springcloud作为现在Java端最流行的微服务架构,可以说是Java程序员必学的一门知识,而整个springcloud系列中又包含了许多的子项目,比如注册中心、网关、服务调用、负载均衡等相关项目,在搭建自己的微服务项目时你首先需要学会的就是如何设置一个合适的项目依赖关系,本文以Maven为例教你如何搭建一个Springcloud的父子项目结构。

父项目目录结构



java 父模块的依赖子模块引不到 idea maven父子项目依赖_spring

父项目目录



新建一个子项目




java 父模块的依赖子模块引不到 idea maven父子项目依赖_spring_02

父子项目目录结构



配置父项目的maven依赖

在父项目的pom文件中设置公共依赖和springcloud版本定义,内容如下:

<?xml version="1.0" encoding="UTF-8"?>    4.0.0    com.huangtl    springcloud-parent    1.0-SNAPSHOT            gateway        pom            1.8                org.springframework.boot        spring-boot-starter-parent        2.3.3.RELEASE                                            org.springframework.cloud                spring-cloud-dependencies                Hoxton.SR8                pom                import                                                cn.hutool            hutool-all            5.1.3                                                    org.springframework.boot                spring-boot-maven-plugin                                                                                        repackage                                                                                                                spring-milestones            Spring Milestones            https://repo.spring.io/milestone                            false

主要设置了四个部分:

  • 定义父项目基本信息,打包格式为pom,设置了子项目标签
  • 设置了继承了固定版本的 spring-boot-starter-parent 依赖
  • 设置了节点定义了springcloud的版本
  • 引入一个工具包公共依赖,这样子项目就不需要引入了

其中重点在于定义了springcloud版本和对应的springboot的版本,这样在子项目引入springcloud和springboot相关依赖时都不需要设置版本号了,会自动寻找对应的版本,解决了我们冲突的烦恼。

gateway网关子项目依赖配置

<?xml version="1.0" encoding="UTF-8"?>            springcloud-parent        com.huangtl        1.0-SNAPSHOT        4.0.0    gateway                        org.springframework.cloud            spring-cloud-starter-gateway

注意我们这里引入了spring-cloud-starter-gateway网关依赖,但是不需要设置版本号,因为我们在父项目定义了springcloud版本管理和对应的springboot的版本会自动寻找对应依赖的版本。

pom文件生效后可以看到子项目已经引入了父项目中定义的公共依赖和对应父项目正确版本的gateway网关依赖。




java 父模块的依赖子模块引不到 idea maven父子项目依赖_maven asm 依赖配置_03

子项目maven依赖效果



以上是就是在搭建springcloud父子项目时的maven配置思路了,后面我会持续更新springcloud的一些子项目如网关、注册中心、负载均衡、服务间调用等实践内容,希望本文对你有所帮助。