【已解決】解決Gradle在使用代理的情況下訪問中央倉庫返回403 Forbidden的問題


問題

IDEA導入項目,刷新Gradle的時候,報錯,但是瀏覽器可以訪問https://repo.maven.apache.org。

Could not resolve org.projectlombok:lombok:1.18.12.

Caused by: org.gradle.internal.resource.transport.http.HttpErrorStatusCodeException: Could not HEAD 'https://repo.maven.apache.org/maven2/org/projectlombok/lombok/1.18.12/lombok-1.18.12.pom'. Received status code 403 from server: Forbidden

分析

那瀏覽器可以用代理訪問,為什么Gradle就不行呢?所以不是代理的問題。

Gradle 肯定沒有問題,如果去掉 gradle.properties中的如下配置,他就可以下載了,但是特別慢。

最終問題是要解決使用代理的情況下,讓Gradle能夠訪問https的倉庫,包括但不限於 maven中央倉庫,bintray等等倉庫。

systemProp.https.proxyUser=
systemProp.https.proxyPassword=
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=1080
systemProp.https.nonProxyHosts=localhost|maven.aliyun.com
systemProp.http.proxyUser=
systemProp.http.proxyPassword=
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080
systemProp.http.nonProxyHosts=localhost|maven.aliyun.com

解決

在Google搜索一番之后發現,是JAVA應該導入證書。

最終解決問題的方法是:
將Gradle的配置文件修改為socks代理:

systemProp.socks.proxyHost=127.0.0.1
systemProp.socks.proxyPort=1080
systemProp.socks.nonProxyHosts=localhost|maven.aliyun.com

並在init.gradle中添加全局鏡像服務器:

allprojects {
    repositories {
        maven {
            url "http://maven.aliyun.com/nexus/content/groups/public"
        }
    }
}

鏈接(不能解決問題)

這里找到兩篇英文的文章,對JAVA證書做了一個闡述。
How to add or list certificates from keystore or trustStore in Java - Keytool Example
How SSL, HTTPS and Certificates Works in Java web Applications

此外還有一篇中文文章講了怎么導入證書到JAVA的 cacerts.
JDK信任證書

可以說一直開發HTTP的接口,很少涉及HTTPS的知識。

可以按照上述中文的文章的說明,訪問https://repo.maven.apache.org/maven2,並在瀏覽器上導出HTTPS證書,存到桌面等位置,並用JAVA_HOME下的bin/keytool導入此證書。

注意Maven的倉庫有兩個

其他網站以此類推


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM