赞
踩
每次打开一个新项目的时候,如果这个项目的依赖
Jar
包,我这里没有,需要去下载的时候,常常会报错,这里做一个总结。IDE是IntelliJ IDEA 2021.1.1
。
此处的常规是指,默认使用中央仓库,并配置中央仓库的镜像仓库。如果出问题了,第一时间,就应该排查这些配置是否有问题。
根据上方的需求,本处的
settings.xml
主要配置两个地方,一个是中央仓库的镜像仓库的URL
,另一个是本地仓库的位置。
打开
settings.xml
文件,搜索mirror
,跳转到对应为止,然后在<mirrors></mirrors>
中添加镜像仓库的URL
。
因为某个已知原因,国内访问一些外国的仓库是偏慢的,所以我们会去配置镜像仓库,例如:
<!-- 配置具体的仓库的下载镜像 -->
<mirror>
<!-- 此镜像的唯一标识符,用来区分不同的mirror元素 -->
<id>nexus-aliyun</id>
<!-- 对哪种仓库进行镜像,简单说就是替换哪个仓库 -->
<mirrorOf>central</mirrorOf>
<!-- 镜像名称 -->
<name>Nexus-aliyun</name>
<!-- 镜像URL -->
<url>https://maven.aliyun.com/repository/public</url>
<!-- <blocked>true</blocked> -->
</mirror>
与这一步相关的,比较常见的问题是,在build
的时候报错,提示某个镜像仓库中找不到对应的依赖项。这里时候应该怎么办呢?
这里偏向于两种可能:
第一种,镜像仓库里面有,但是下载不下来,网络对于依赖项的下载的影响是非常大的,如果下载不了,多刷新几次,如果还是不行,建议换个网络,笔者试过自己网络卡顿下了大半天下载不下来,等到了半夜,不知是网络通畅还是如何,一刷新就全部下好了。
第二种,镜像仓库里面真的没有,这个就需要去镜像仓库里面去仓库,举个例子,我们上面使用的是阿里的镜像仓库,所以我们可以去到阿里的镜像仓库管理网站:仓库服务 去查看。
例如:
我现在需要下载flink-connector-hive_2.12
的1.16.0
的依赖包,假设现在这个镜像仓库说没有,那么我就登上阿里的镜像仓库的网站去搜索这个依赖包。
找到了依赖项所在的仓库,就可以去查看这个仓库的URL。
需要填入的就是3、
中的URL。
本地仓库的位置不会影响下载,此处提到,只是因为我们需要去本地仓库中查看下载情况。
在settings.xml
中进行如下配置:
<localRepository>本地仓库路径</localRepository>
现在,假设某个包下载失败,打开本地仓库的路径,找到依赖包的路径,我们可以发现会有如下命名的文件:xxx.lastUpdated
,说明下载失败,这种情况往往是因为网络问题而不是镜像仓库没有该依赖包。
下面举例一种网络问题。
因为HTTPS
协议中的SSL
证书不可信,导致下载失败,可能会有如下报错信息:
unable to find valid certification path to requested target
针对这种情况,了解HTTPS
协议的同学,第一个反应应该就是配置忽略SSL
证书的检查,所以我们可以得出以下处理方式:
指令如下:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
暂无记录,需要根据实际报错情况来解决,需要注意的一点是,也不用过于依赖报错情况,笔者尝试过,报错提示我无法在远程仓库中找到某一个依赖包,但是实际上我已经手动导入,依然报错,后来去其他依赖包一看,发现导出都是
xxx.lastUpdated
,说明实际问题在于这些依赖包,后解决这些依赖包后,就没有报错提示无法在远程仓库中找到某一个依赖包。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。