Je suis nouveau à Gradle et je passais par ce tutoriel de printemps trouvé ici:
http://spring.io/guides/gs/gradle/
J'arrive à la partie où il me dit d'ajouter cette tâche:
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
Je lance gradle wrapper qui crée les fichiers gradlew et gradlew.bat.
En essayant d'exécuter les deux, j'obtiens cette exception:
Downloading https://services.gradle.org/distributions/gradle-2.3-bin.Zip
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Sun.security.val
idator.ValidatorException: PKIX path building failed: Sun.security.provider.cert
path.SunCertPathBuilderException: unable to find valid certification path to req
uested target
at Sun.security.ssl.Alerts.getSSLException(Alerts.Java:192)
at Sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.Java:1884)
at Sun.security.ssl.Handshaker.fatalSE(Handshaker.Java:276)
at Sun.security.ssl.Handshaker.fatalSE(Handshaker.Java:270)
at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.
Java:1341)
at Sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.jav
a:153)
at Sun.security.ssl.Handshaker.processLoop(Handshaker.Java:868)
at Sun.security.ssl.Handshaker.process_record(Handshaker.Java:804)
at Sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.Java:1016)
at Sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.
Java:1312)
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1339
)
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1323
)
at Sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.Java:
563)
at Sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect
(AbstractDelegateHttpsURLConnection.Java:185)
at Sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
nection.Java:1300)
at Sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Http
sURLConnectionImpl.Java:254)
at org.gradle.wrapper.Download.downloadInternal(Download.Java:56)
at org.gradle.wrapper.Download.download(Download.Java:42)
at org.gradle.wrapper.Install$1.call(Install.Java:57)
at org.gradle.wrapper.Install$1.call(Install.Java:44)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.Java:65)
at org.gradle.wrapper.Install.createDist(Install.Java:44)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.Java:126)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.Java:56)
Caused by: Sun.security.validator.ValidatorException: PKIX path building failed:
Sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali
d certification path to requested target
at Sun.security.validator.PKIXValidator.doBuild(PKIXValidator.Java:385)
at Sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.jav
a:292)
at Sun.security.validator.Validator.validate(Validator.Java:260)
at Sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.j
ava:326)
at Sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerIm
pl.Java:231)
at Sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustMan
agerImpl.Java:126)
at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.
Java:1323)
... 19 more
Caused by: Sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
at Sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCert
PathBuilder.Java:196)
at Java.security.cert.CertPathBuilder.build(CertPathBuilder.Java:268)
at Sun.security.validator.PKIXValidator.doBuild(PKIXValidator.Java:380)
... 25 more
J'essaie de consulter le serveur Web à https://services.gradle.org/distributions/gradle-2.3-bin.Zip et je ne reçois aucune erreur. Il me manque une sorte de config? Toute aide serait appréciée. Merci!
J'ai rencontré le même problème, mais certains de mes symptômes étaient que ma machine Ubuntu ne pouvait résoudre aucun hôte SSL à moins que je ne les ajoute spécifiquement au fichier (autorité de certification) de Java (cacert).
Je suis tombé sur ce bogue Debian et ai trouvé une résolution assez simple: supprimez ca-certificates-Java
et réinstallez-le:
Sudo dpkg --purge --force-depends ca-certificates-Java
Sudo apt-get install ca-certificates-Java
J'ai fait un ./gradlew clean
pour faire bonne mesure, et tout est revenu à la vie.
si vous ne pouviez pas réparer quand même. et si vous êtes à l'intérieur du pare-feu.
puis.
vous ne pouvez pas télécharger https.
devrait corriger ce fichier Edit gradle-wrapper.properties.
vi [project]/gradle/wrapper/gradle-wrapper.properties
#distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-bin.Zip
distributionUrl=http\://services.gradle.org/distributions/gradle-2.8-bin.Zip
passer de https à http ...
http://blog.cjred.net/gradlew-bat-and-gradlew-sslhandshakeexception/
Il semble que les certificats pour le site Gradle aient été foirés. Faire un gradlew clean
devrait résoudre ce problème. Voir ce fil sur le forum Gradle: http://discuss.gradle.org/t/urgent-ssl-Apache-configuration-for-services-gradle-org-is-bad/8808/4
Dans mon cas, le problème était dû à une version obsolète (7 ans) de Java. Même gradlew clean
a échoué. Après une mise à jour Java, cela a bien fonctionné.
Dans mon cas, j'étais sur un réseau d'entreprise et derrière un proxy qui, si j'ai bien compris, réécrit les certificats SSL, de sorte que l'installation de Java ne fait confiance à aucun d'eux.
Pour le résoudre, je devais créer un fichier gradle.properties dans mon répertoire personnel sous .gradle (~/.gradle/gradle.properties
) et ajouter la ligne suivante:
org.gradle.jvmargs=-DsystemProp.https.proxyHost=<myProxyHost> -DsystemProp.https.proxyPort=<myProxyPort> -DsystemProp.https.proxyUser=<myProxyUsername> -DsystemProp.https.proxyPassword=<myProxyPassword>
Cette solution était basée sur cette réponse SO: Gradle utilise l'authentification par certificat pour le référentiel
En effet, Gradle essaie de trouver le package installé sur votre ordinateur local . Si vous avez l'emplacement d'installation:
D:\apps\gradle-3.3
Suivez ces étapes dans Eclipse:
Tu es prêt.