maven-pom<repository>无法生效问题

项目场景:

项目中需要用到第三方maven库pom配置如下,配置后一直无法生效相关jar包还是从ali资源库下载,参考:在pom文件中设置repository不生效问题的解决_pom repository 无效_lifeohcaro的博客-CSDN博客还是没有生效!,最后还是看idea日志才发现问题。

    <repositories>
        <repository>
            <id>cloudera</id>
            <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>
    </repositories>

maven settings.xml配置如下

    <mirror>
	  <id>aliyunmaven</id>
	  <mirrorOf>central,!cloudera</mirrorOf>
	  <name>阿里云公共仓库</name>
	  <url>https://maven.aliyun.com/repository/public</url>
	</mirror>


问题描述

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Java在访问SSL加密的网站时,需要从JDK的KeyStore 里面去查找相对应得可信证书,如果不能从默认或者指定的KeyStore 中找到可信证书,就会报这个错误。

查看idea日志:

Caused by: java.lang.RuntimeException: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to transfer Impala:ImpalaJDBC42:pom:2.6.29.1035 
from https://repository.cloudera.com/artifactory/cloudera-repos/ was cached in the local repository, resolution will not be reattempted until the update interval of cloudera has elapsed or updates are forced. Original 
error: Could not transfer artifact Impala:ImpalaJDBC42:pom:2.6.29.1035 from/to cloudera (https://repository.cloudera.com/artifactory/cloudera-repos/):
 sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:255)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:232)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:268)
    ... 33 more


解决方案:

从浏览器下载证书安装到java证书中:

1.下载证书

导出证书到本地保存

保存到本地

 2.导入证书

cmd 执行下面命令

***JDK如果安装在C盘的请以管理员身份运行

keytool -import -file "DigiCert Global Root G2.crt" -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -alias cloudera-repos

其中:

-alias 指定别名

-keystore 指定存储文件(此处固定)

-file 指定刚下载证书文件全路径(我这里因为证书保存在D盘命令直接在D盘敲得)

***此时命令行会提示你输入cacerts证书库的密码,敲入changeit即可,这是java中cacerts证书库的默认密码。

查看已安装证书

keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts" | findstr /i cloudera-repos

 我这边证书之前已安装,所以显示重复问题(不影响)。

重启idea 刷新maven引入需要的jar,ok!大功告成...

最后一句:查找问题还是要看日志,折磨的都快放弃了!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值