【问题标题】:Spring STS 3.6.1 and Gradle pluginSpring STS 3.6.1 和 Gradle 插件
【发布时间】:2014-11-25 17:52:19
【问题描述】:

我已经通过 spring STS 3.6.1 仪表板中的扩展选项卡下载了 Gradle 支持插件。

然后尝试导入本地基于 gradle 的项目。但是当我单击“构建模型”按钮时。弹出如下错误信息,gradel项目无法导入我的spring STS。

无法找到请求目标的有效证书路径 查看错误 登录了解详情

错误日志详情如下:

org.eclipse.core.runtime.CoreException:找不到有效的 请求目标的认证路径 org.springsource.ide.eclipse.gradle.core.GradleModelProvider$GroupedModelProvider.ensureModels(GradleModelProvider.java:284) 在 org.springsource.ide.eclipse.gradle.core.GradleProject.getGradleModel(GradleProject.java:633) 在 org.springsource.ide.eclipse.gradle.core.GradleProject.getSkeletalGradleModel(GradleProject.java:654) 在 org.springsource.ide.eclipse.gradle.ui.wizards.GradleImportWizardPageOne$11.doit(GradleImportWizardPageOne.java:516) 在 org.springsource.ide.eclipse.gradle.core.util.GradleRunnable.run(GradleRunnable.java:84) 在 org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122) 引起:org.gradle.tooling.GradleConnectionException:不能 从安装 Gradle 发行版 'https://services.gradle.org/distributions/gradle-2.0-bin.zip'。在 org.gradle.tooling.internal.consumer.DistributionFactory$ZippedDistribution.getToolingImplementationClasspath(DistributionFactory.java:107) 在 org.gradle.tooling.internal.consumer.loader.CachingToolingImplementationLoader.create(CachingToolingImplementationLoader.java:36) 在 org.gradle.tooling.internal.consumer.loader.SynchronizedToolingImplementationLoader.create(SynchronizedToolingImplementationLoader.java:40) 在 org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.onStartAction(LazyConsumerActionExecutor.java:98) 在 org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:81) 在 org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:58) 在 org.gradle.tooling.internal.consumer.connection.LoggingInitializerConsumerActionExecutor.run(LoggingInitializerConsumerActionExecutor.java:44) 在 org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:55) 在 org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(Unknown Source) 在 org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46) 在 org.gradle.tooling.internal.consumer.DefaultModelBuilder.get(DefaultModelBuilder.java:48) 在 org.springsource.ide.eclipse.gradle.core.GradleModelProvider.buildModel(GradleModelProvider.java:385) 在 org.springsource.ide.eclipse.gradle.core.GradleModelProvider$GroupedModelProvider.ensureModels(GradleModelProvider.java:290) ... 5 更多原因:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 在以下位置找到请求目标的有效认证路径 sun.security.ssl.Alerts.getSSLException(未知来源)在 sun.security.ssl.SSLSocketImpl.fatal(未知来源)在 sun.security.ssl.Handshaker.fatalSE(未知来源)在 sun.security.ssl.Handshaker.fatalSE(未知来源)在 sun.security.ssl.ClientHandshaker.serverCertificate(未知来源) 在 sun.security.ssl.ClientHandshaker.processMessage(未知来源) 在 sun.security.ssl.Handshaker.processLoop(未知来源) sun.security.ssl.Handshaker.process_record(未知来源)在 sun.security.ssl.SSLSocketImpl.readRecord(未知来源)在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知来源) 在 sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.startHandshake(未知来源)在 sun.net.www.protocol.https.HttpsClient.afterConnect(未知来源) 在 sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(未知 来源)在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知 来源)在 sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(未知 来源)在 org.gradle.wrapper.Download.downloadInternal(Download.java:56) 在 org.gradle.wrapper.Download.download(Download.java:42) 在 org.gradle.tooling.internal.consumer.DistributionFactory$ProgressReportingDownload.download(DistributionFactory.java:127) 在 org.gradle.wrapper.Install$1.call(Install.java:57) 在 org.gradle.wrapper.Install$1.call(Install.java:44) 在 org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65) 在 org.gradle.wrapper.Install.createDist(Install.java:44) 在 org.gradle.tooling.internal.consumer.DistributionFactory$ZippedDistribution.getToolingImplementationClasspath(DistributionFactory.java:103) 在 org.gradle.tooling.internal.consumer.loader.CachingToolingImplementationLoader.create(CachingToolingImplementationLoader.java:36) 在 org.gradle.tooling.internal.consumer.loader.SynchronizedToolingImplementationLoader.create(SynchronizedToolingImplementationLoader.java:40) 在 org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.onStartAction(LazyConsumerActionExecutor.java:98) 在 org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:81) 在 org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:58) 在 org.gradle.tooling.internal.consumer.connection.LoggingInitializerConsumerActionExecutor.run(LoggingInitializerConsumerActionExecutor.java:44) 在 org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:55) 在 org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(Unknown Source) 引起: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 在以下位置找到请求目标的有效认证路径 sun.security.validator.PKIXValidator.doBuild(未知来源)在 sun.security.validator.PKIXValidator.engineValidate(未知来源) 在 sun.security.validator.Validator.validate(Unknown Source) 在 sun.security.ssl.X509TrustManagerImpl.validate(未知来源)在 sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(未知 来源)... 31 更多 原因: sun.security.provider.certpath.SunCertPathBuilderException:无法 在以下位置找到请求目标的有效认证路径 sun.security.provider.certpath.SunCertPathBuilder.engineBuild(未知 来源)在 java.security.cert.CertPathBuilder.build(未知来源) ... 37 更多

【问题讨论】:

  • 您是否尝试过在没有 Eclipse 的情况下使用 Gradle 构建这个项目? (在控制台“./gradlew build”中执行这个?)
  • 在尝试从 https://services.gradle.org/distributions/gradle-2.0-bin.zip 下载 Gradle 发行版时似乎失败了。似乎是您的网络环境中的某些东西禁止您从该 url 下载。您可以尝试自己下载、解压并在 Gradle 首选项页面中手动配置。但是你很可能会遇到其他问题,因为 Gradle 构建也会从 Internet 下载东西(依赖项)。
  • Kris 推荐的内容对我有用

标签: java spring gradle spring-tool-suite


【解决方案1】:

我注意到这是几个月前发布的。我希望这个问题已经解决了。但我想分享一下我为解决这个问题所做的工作。

正如 Kris 所说,这与环境有关。正如错误所暗示的,它无法找到 gradle 分发站点的有效认证路径。

我们公司不知何故拦截了证书链并将根证书作为公司 CA。我的公司 CA 证书不在我的 Eclipse 使用的 JRE 的 jre/lib/security/cacerts 密钥库中。我将我的公司 CA 证书添加到密钥库中,之后它开始工作。我相信它不仅限于 Gradle,它应该对使用 https 的任何其他下载产生问题!

【讨论】:

    【解决方案2】:

    我查看了 STS 日志,发现这是问题所在 “org.gradle.tooling.GradleConnectionException:无法安装 Gradle 分布来自 'https://services.gradle.org/distributions/gradle-2.9-bin.zip'"

    因此,很明显 STS 无法下载 gradle 分发可能是由于代理设置。以下方法对我有用-

    在 STS 中,导航到 Windows->Preferences->Gradle。 在右侧窗格中,将 gradle 分发下的文件夹设置为 gradle 目录的路径。我将其设置为“C:\software\gradle-2.6”

    如果您在下载 gradle 发行版时遇到网络问题,请使用此方法。

    【讨论】:

      猜你喜欢
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2016-01-21
      • 1970-01-01
      • 2014-07-27
      • 2015-05-20
      相关资源
      最近更新 更多