记一次改了N天的bug(依旧没有完全解决 )
之前做的Maven项目近期一打开,突然依赖哪里全部报错!!!
我就知道,完蛋了一切得重新来了。它只报了一个错误
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
就是说我需要安装整证书
另外一条路就是说…换一个镜像呗。
下面是我试验过的几个镜像。。。。。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
亲测。。。都失败了
于是又不得不直面这个SSL证书的问题
于是走上了另一条不归路
1、下载证书
谷歌浏览器的话就是在左面有一个小锁可以点击之后复制证书,保存到本地
2、安装证书
打开cmd到jdk的安装路径下F:\JDK\jre-1.8\lib\security(我的jdk位置是:F:\JDK\jre-1.8)
3、执行相关指令
导入证书
keytool -import -alias cacerts -keystore cacerts -file ali.cer
-file 指定证书文件的位置
-alias 指定证书的别名
输入密钥库口令:
changeit
以后更新时,先删除原来的证书,然后导入新的证书
keytool -list -keystore cacerts
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer-keystore cacerts
but依旧在运行时依旧失败
于是我想可能是jdk版本不行,于是重新安装了JDK,依旧无效
可能是Maven版本不行,于是重新下载Maven依旧失败
settings.xml文件更是改了无数遍
终于我妥协了,跳过SSL证书检验环节
执行下列语句:(自己导包)
mvn clean install -DskipTests -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
亲测有效
然后还是想了想附上手动导包的流程
手动导包
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
:jar包路径
:maven依赖中的group-id
: maven依赖中的artifact-id
:maven依赖中的version jar版本号
:规定项目的输出格式,包括jar、war、pom、apk等
样例:
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.7</version>
</dependency>
对应的语句
mvn install:install-file -Dfile=C:\Users\再几何\Desktop\commons-dbutils-1.7\commons-dbutils-1.7.jar -DgroupId=commons-dbutils -DartifactId=commons-dbutils -Dversion=1.7 -Dpackaging=jar