SpringCloud集群开发问题-引用组件包报错程序包找不到问题
引用组件包报错“程序包xx找不到”问题
错误描述
项目结构如下:
user引入子组件api接口与database项目jar包时,maven编译或打包会报错:
程序包xx.xxx.xx…x.xMapper不存在
程序包xx.xxx.xx…x.xModel不存在
错误原因
检查database打包配置:
发现所有database服务都加入了maven插件:
spring-boot-maven-plugin
打包结果:
由此可知maven先执行打包生成.jar文件后,然后执行repackage将之重命名为.original,然后才会生成可执行的jar,这种生成方式的jar是可执行的jar包,如果作为普通jar包引入其他服务使用是不可行的,故会报找不到其中类的错。
错误解决
知道原因后我们只需要将之打包成为可引入的普通jar包即可:
mvn clean package -D spring-boot.repackage.skip=true
指令操作比较麻烦,另一种方式:
配置操作方式:
execute:可执行包(默认)
skip:跳过生成可执行包,即生成普通包
还有另一种最简单粗暴的方式:直接屏蔽这个plugin打包