mavn依赖报错终极解决方案

Posted 看写写

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mavn依赖报错终极解决方案相关的知识,希望对你有一定的参考价值。

mavn依赖报错终极解决方案

找到自己配置的远程mvn仓库地址

首先检查自己的nvn的 m2目录下的 settings.xml文件中的,一般我们使用的都是镜像配置,
当然如果不是镜像配置也没有问题,只要拿到url就可以了,

<mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>https://mvnrepository.com/</url> 
 </mirror>

这个url就是mvn仓库的地址。

通过远程url查看报错的依赖是否存在

通过依赖的 groupId,artifactId,version唯一确定一个jar包

<!-- https://mvnrepository.com/artifact/systems.reformcloud.reformcloud2/reformcloud2-executor -->
<dependency>
   <groupId>systems.reformcloud.reformcloud2</groupId>
   <artifactId>reformcloud2-executor</artifactId>
   <version>2.1.0</version>
   <scope>provided</scope>
</dependency>

这里需要注意的是不同的仓库,对于groupId解析方式不一样,
比如maven中央仓库就是 url/groudId/artifactId/version ,比如上面的依赖全路径就是下面的
https://mvnrepository.com/artifact/systems.reformcloud.reformcloud2/reformcloud2-executor/2.1.0
但是不是所有的仓库都是这样的设计的,有的是groupId每个 . 最为一级目录,所以首先需要打开url看一下
远程仓库的目录结构,然后找到自己依赖所在的路径

下载依赖包

根据上一步的路径下载依赖包,一般都是jar的,下载好之后手动安装到本地仓库中。

mvn install:install-file  -Dfile=reformcloud2-executor2.1.0.jar -DgroupId=systems.reformcloud.reformcloud2 -DartifactId=reformcloud2-executo -Dversion=2.1.0 -Dpackaging=jar

执行mvn命令的时候,保证自己使用的mvn就是自己编译器中配置的mvn其路径保持一致,其安装的本地仓库保持一致,本地仓库
安装路径会在输出信息中看到,安装成功之后再去刷新pom文件或者重新导入依赖就解决了。
注意:
1, mvn命令在一个没有pom文件的路径下执行,否则mvn命令回去安装pom文件,而不是你指定的依赖文件。
2,觉得命令行比较麻烦,也可以单独新建一个maven项目/pom文件,把依赖配置放进去单独导入,看是否能导入,也可以。

检查本地仓库依赖是否安装成功

上一步的命令安装成功之后,可以去本地仓库查看依赖是否存在,进行确定。

总结

maven的依赖是一个经常出现的问题,我们第一步应该做的就是去远程仓库中确定依赖的存在,依赖存在的情况下如果无法导入
则需要手动导入。因为会遇见有一些依赖无法下载问题,所以就手动下载,然后手动安装依赖,当然这种情况都是去解决个别依赖
无法导入的情况,如果大量依赖报错,这个方法肯定就不合适了,因为比较耗时哈哈。当然可以做一个脚本。
注意:
如果大量依赖无法导入/下载,那就去检查mvn配置的远程仓库是否出问题了,或者mvn无法连接网络了,需要去一个个排查,当然
如果是idea还存在mavne offline的配置,看看自己是否把maven离线了导致无法安装依赖。

以上是关于mavn依赖报错终极解决方案的主要内容,如果未能解决你的问题,请参考以下文章

mavne install 报错org.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.Invoca

python 按装 MySQLdb报错终极解决方案

ROS的 sudo rosdep init 的报错终极解决方案

Linux中安装Oracle报错Oracle DISPLAY COLOR终极解决方案

终极方案:快速解决Android项目依赖冲突

gradle重复依赖终极方案解决办法