文章目录
前言
找不到符号.... 程序包xxx.xxx.xxx不存在 有这些内容却报没有找到这个包或类?
Project ‘org.springframework.boot:spring-boot-starter-parent:2.6.3‘ not found
spring cloud 版本错Cannot resolve org.springframework.cloud:xxxx:unknown
spring-cloud-alibaba-dependencies、spring-cloud-dependencies和spring-boot-dependencies无法找到
一.第一种类型的问题
解决这些问题要注意:
1. 避免循环依赖
2. 注意依赖顺序(优先最短路径选择依赖,路径相同按导入顺序选择依赖)
3.可尝试手动编译公共服务模块.之后再工程编译所有模块
4. 一个springboot严重的大坑比大坑比大坑比!!!!!!!!!,下面将会介绍到
我是将
在编译时修改为如下内容:这个只用在公共服务模块添加该插件即可
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<classifier>exec</classifier>
</configuration>
</plugin>
在打包时出现找不到启动类的,比如你的公共工具模块就没有:应该如下.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
<classifier>exec</classifier>
</configuration>
</plugin>
注意下方这张图!!!!!!!
原因如下,转载至此处: 详见源地址
spring-boot-maven-plugin打包出来的jar是不可依赖的
比如我有一个root工程,type为pom,下面两个spring-boot工程作为它的module,分别为moduleA和moduleB。假如moduleA依赖于moduleB。如果你在moduleB中使用了spring-boot-maven-plugin的默认配置build,或者在root中使用spring-boot-maven-plugin的默认配置build。很遗憾,你在clean package的时候会发现moduleA找不到moduleB中的类。原因就是默认打包出来的jar是不可依赖的。
二.第二种类型问题bom类型
子pom报依赖找不到....但是确确实实有因为之前一直用这几个包 原因如下:
spring-cloud-dependencies
spring-boot-starter-parent
spring-cloud-alibaba-dependencies 等这些其实是bom文件只能用在dependencyManagement.
倘若在子模块中dependencies引用必然报错!.因为他们只能在dependencyManagement声明.解决办法是在子模块种去掉他们,但是有人会奇怪去掉了我怎么引用呢.其实啊不必担心,直接引用他们里面的具体内容就可.以下我将讲解什么是bom,怎么知道他们是bom!
他们统称为bom: bom就像dockerfile,通俗点说就是配方清单,他们记录着 统一版本的组件:
比如spring-cloud-alibaba-dependencies里面含有:
等jar包.
三.怎么知道谁是bom?
maven仓库地址
像这样,在maven仓库中被标记类型为pom的只能在dependencyManagement中使用!,他们就是bom文件!有的具有两个标记