私はGradleを初めて使い、この春のチュートリアルをここで見つけました:
http://spring.io/guides/gs/gradle/
このタスクを追加するように指示する部分に到達します。
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
Gradlewおよびgradlew.batファイルを作成するgradleラッパーを実行します。
この両方を実行しようとすると、この例外が発生します:
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
https://services.gradle.org/distributions/gradle-2.3-bin.Zip でウェブサーバーにアクセスしようとしましたが、エラーは発生しません。ある種の設定がありませんか?任意の助けをいただければ幸いです。ありがとう!
同じ問題を経験しましたが、Javaの認証局(cacert)ファイルに特別に追加しない限り、UbuntuマシンがSSLホストを解決できないという症状がありました。
私はこのDebianのバグを見つけて、かなり簡単な解決策を見つけました:remove ca-certificates-Java
そして再度インストールします。
Sudo dpkg --purge --force-depends ca-certificates-Java
Sudo apt-get install ca-certificates-Java
私は./gradlew clean
良い尺度であり、すべてが再び生き返った。
とにかく修正できなかった場合。ファイアウォールの内側にいる場合。
それから。
httpsをダウンロードできない場合があります。
その編集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
httpsからhttpに変更...
http://blog.cjred.net/gradlew-bat-and-gradlew-sslhandshakeexception/
Gradleサイトの証明書が台無しになっているようです。 gradlew clean
これを修正する必要があります。 Gradleフォーラムでこのスレッドを参照してください: http://discuss.gradle.org/t/urgent-ssl-Apache-configuration-for-services-gradle-org-is-bad/8808/4
私の場合、会社のネットワーク上でプロキシの背後にいたため、SSL証明書が書き換えられ、Javaインストールはそれらのいずれも信頼しません。
それを解決するために、ホームディレクトリの.gradle(~/.gradle/gradle.properties
)次の行を追加します。
org.gradle.jvmargs=-DsystemProp.https.proxyHost=<myProxyHost> -DsystemProp.https.proxyPort=<myProxyPort> -DsystemProp.https.proxyUser=<myProxyUsername> -DsystemProp.https.proxyPassword=<myProxyPassword>
そのソリューションはこれに基づいていましたSO answer: Gradle use certificate authentication for repository
私の場合、問題は古い(7歳)バージョンのJavaが原因でした。 gradlew clean
は失敗しました。 Java更新後に正常に動作しました。
これは、Gradleがローカルマシンでインストール済みパッケージを見つけようとするためです。インストール場所がある場合:
D:\ apps\gradle-3.3
Eclipseで次の手順を実行します。
準備できた。