以下有四个依赖,依次用1,2,3,4标识,并提出有以下疑问
1,
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2,3,4
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
1.以上4个依赖在什么时候产生,是什么
依赖1,start-parent创建一个springboot项目时默认都会生产这个父依赖
依赖2,在创建springCloud或nacos项目时,需要引入springCloud依赖,比如FeignClient依赖就是来源于springCloud依赖
依赖3,包含springboot的一些默认依赖及其默认版本
依赖4,todo
2.关系
依赖1包含依赖3,依赖3包含springboot默认依赖
3.引用场景
如果只是单纯的创建一个springboot项目,不需要考虑2,3,4,有默认依赖1即可
如果创建的是springCloud或nacos项目,就需要依赖2,3,4(好像也不是必须),而且依赖2,3,4放一般放在父项目中,需要创建一个父项目,然后子项目依赖该父项目,统一使用父项目的springboot及cloud版本,同时子项目也要加入同样的依赖,不然依赖不到。
4.如何创建一个springCloud或nacos项目
以3个项目举例
1.一个电商项目,订单,商品等,独立为一个springBoot项目,分为父项目子项目,子模块包含model,dao,service,common,facede,facede-stub,client,task,其中facade为springboot项目,其他为普通的maven项目,client中封装clloud-openfeign,实现项目中相互调用
spring-cloud-starter-openfeign
2.nacos项目,各个业务也是独立的,创建了父项目,依赖了2,3,4,子项目依赖父项目,feign调用为父项目cloud feign
3.物流项目,各个模块为独立的springboot项目,springcloud项目,注意创建父项目,子项目时创建普通的maven项目,然后手动加入启动类,直接创建springboot项目导致结构混乱。
5.项目中没有定义版本号,怎么知道依赖哪个版本,如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3中有解释
6.springboot与springCloud版本兼容问题,参考官网springCloud有解释
7.创建一个springboot项目需要引用feignClient,启动报错问题
原因,同时有start-parent与2,3,4依赖,且版本不匹配,1与3应该冲突,且parent版本不该低于依赖3