Maven导入本地仓库的jar包报错———解决方法

 Failed to read artifact descriptor for com.kerry.dubbo.teacher:api:jar:1.0错误解决

下面是前言环境,想看解决方法,可直接下滑至底部

前言:

今天做的一个微服务小案例(Teacher模块与Student模块交互)

通过dubbo + zookeeper 和 SpringBoot技术将两个模块进行拆分后,将模块提供的Service服务注册到Zookeeper做的注册中心上。

包结构如下:

      

       

 案例中的各个moudel不做过多解释,这里大概解释一下:

api:负责存放模块提供的Service的上级接口。其他需要使用到

   该模块服务的只需要导入该模块的API即可知道该模块所提

   供的服务功能,随后去注册中心(ZK)上获取对应的服务。

moudel:负责存放该模块的实体类(pojo)和实体类对应的Mapper

server:提供该模块服务(Service)的主要实现,随后注册到注册

      中心(ZK)上,还可以在其中去调用其他模块的服务。

在做完Teacher模块之后,我想在Student模块中去使用到Teacher模块,此时在从注册中心获取服务之前,我需要先导入Teacher模块的api.jar。

这个时候我就通过Maven的Lifecycle的install功能对API这个Moudel进行打包。

 由于我两个模块都是用的同一个Maven本地仓库,所以打包之后我只需要去另一个模块直接加载就行了。

随后我来到Student模块中在server的pom.xml对Teacher的api进行加载

此时项目中就报出了错误

 Failed to read artifact descriptor for com.kerry.dubbo.teacher:api:jar:1.0错误

并且我原先在本地仓库导入的Student模块的api.jar也跟着报错

 在Maven加载包的时候,所有导入的包统统失败

此时我们看项目已经导入的Jar中可以发现Teacher模块的API包已经导入进了项目并且已经看得到里面的类了

由此我们可以推断出问题并不是出现在找不到JAR包上

最后通过查阅资料发现问题是:

如果说,项目是通过maven来管理构建项目且通过各个module形式存在,那么在deploye的时候需要将父POM文件也部署到私服上,否则会出现如上问题

也就是说,我们在进行模块打包的时候需要将整个项目打包,而不是只打包模块中单独的一个Moudel(API模块)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kerry_x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值