SpringCloud集群开发问题-引用组件包报错程序包找不到问题

引用组件包报错“程序包xx找不到”问题

错误描述

项目结构如下:
SpringCloud集群开发问题-引用组件包报错程序包找不到问题_第1张图片
user引入子组件api接口与database项目jar包时,maven编译或打包会报错:
程序包xx.xxx.xx…x.xMapper不存在
程序包xx.xxx.xx…x.xModel不存在

错误原因

检查database打包配置:
SpringCloud集群开发问题-引用组件包报错程序包找不到问题_第2张图片
发现所有database服务都加入了maven插件:
spring-boot-maven-plugin

打包结果:
在这里插入图片描述
由此可知maven先执行打包生成.jar文件后,然后执行repackage将之重命名为.original,然后才会生成可执行的jar,这种生成方式的jar是可执行的jar包,如果作为普通jar包引入其他服务使用是不可行的,故会报找不到其中类的错。

错误解决

知道原因后我们只需要将之打包成为可引入的普通jar包即可:
mvn clean package -D spring-boot.repackage.skip=true
指令操作比较麻烦,另一种方式:
SpringCloud集群开发问题-引用组件包报错程序包找不到问题_第3张图片
配置操作方式:
execute:可执行包(默认)
skip:跳过生成可执行包,即生成普通包

还有另一种最简单粗暴的方式:直接屏蔽这个plugin打包

你可能感兴趣的:(spring开发问题)