同事被嘲笑后找到多种解决SpringBoot项目编译运行提示“程序包xxx不存在,找不到符号”方案
2023-03-14 22:47:52 时间
项目结构:
如图:
问题场景:
在运行引导类的时候,一直提示“程序包xxx不存在,找不到符号”
原因分析:
项目build过程出现问题,个人估计一般这种情况就是依赖问题,pom.xml中导入有问题,有可能是springboot自身的编译插件spring-boot-maven-plugin导致的。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
如上,就是springboot的maven插件,用这个插件打包的Jar包可以直接运行,但是不可依赖!
解决方案(三选一):
1、(推荐) 不要将此插件放到顶级父工程中,在需要打成可执行jar的地方添加就好了,如果是需要被依赖的,就不要添加此插件
***我项目的解决办法:SpringBoot项目运行引导类时候出现此类问题一般删除此依赖,在maven中clear一下项目再install一下就能解决,注意上面所说,如果是需要被依赖的不要添加此插件!!
2、 在需要对外提供依赖的项目的pom里设置,这样设置会让项目生成两个jar:一个可执行jar,一个可依赖的jar; (目前还没涉及打包,没有尝试)
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 生成可执行的jar的名字:xxx-exec.jar --> <!-- 不固定,写成abcd都可以 --> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>
3、在configuration中加入skip标签,取消生成可执行jar; (目前还没涉及打包,没有尝试)
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build>
相关文章
- 3D 穿梭效果?使用 UWP 也能搞定
- 《手把手教你》系列技巧篇(四十一)-java+ selenium自动化测试 - 处理iframe -上篇(详解教程)
- Centos8上安装Mysql8.X
- Mac刷新DNS,修改/etc/hosts立即生效
- error while loading shared libraries: libhwloc.so.5: cannot open shared object file: No such file or
- 问题解决:Address already in use
- 从 RPC 到服务化框架设计
- 微光行动|我们在地铁里建了一座「公园」
- 真相了! 程序员界的废话文学
- 开源公告|通用的分布式shuffle服务-Firestorm开源
- 如何管理设备热点?
- EasyNVR配置项api_auth获取接口鉴权,如何获得最高权限?
- DNSPod十问贾宇航:告别“人工智障”?训练数据厂商为AI正名
- 二叉排序树的查找
- 二叉排序树的删除
- 移动零
- 岛屿数量
- 752. 打开转盘锁
- C++自定义类的对象对于其私有变量的访问
- 冒泡排序,选择排序,插入排序,折半插入排序