- 明确代理服务器地址及端口,比如proxy.supremehover.com:8080
- 找到maven目录下的confsettings.xml并打开,在proxies节点下添加proxy
<proxies> <proxy> <id>proxyHttp</id> <active>true</active> <protocol>http</protocol> <username>username</username> <password>password</password> <host>proxy.supremehover.com</host> <port>8080</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> <proxy> <id>proxyHttps</id> <active>true</active> <protocol>https</protocol> <username>username</username> <password>password</password> <host>proxy.supremehover.com</host> <port>8080</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies>
分别配置http及https的代理
- username填写登录代理服务器所用用户名,可能要以域用户名形式填写,比如supremehover.comuser,我直接写用户名就成功了。
- password填写登录代理服务器所用密码
- nonProxyHosts填写不用代理的地址,以竖线|分割多个地址,一般填写本地Maven仓库地址
如果mvn命令依然报错,但错误是SunCertPathBuilderException
- 明确mvn访问的报错地址,比如是https://repo1.maven.org/maven2/,用浏览器访问,点击地址栏左边锁标志,出现下图
- 点击详细信息。出现下图
- 从左至由,分别点击红色框所示部分,导出文件sample.cer(文件名随意,后缀名自动为cer)出现下图
- 找到Java目录下的cacerts文件,分别位于jdk及jre下,并将sample.cer拷贝至同一位置
- 分两次操作切换至上述两处位置,以管理员模式在当前位置打开cmd,在打开的cmd中输入
keytool -import -alias sample -file sample.cer -keystore cacerts -storepass changeit
-
出现下图(图太长截部分)
-
输入字符Y,敲击回车键。出现下图表示成功
-
重启JVM或者系统即可使mvn命令正常访问互联网。
-
keytool命令的几点说明
- alias可以随意命名
- storepass的changeit是java默认的密码
Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error
Java安全通信:HTTPS与SSL