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

时间:2021-07-13
本文章向大家介绍Maven导入本地仓库的jar包报错———解决方法,主要包括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模块)

所有文章均为原创,转载请注明出处。

原文地址:https://www.cnblogs.com/zcl1116/p/15008219.html