在Ubuntu上,gradle版本2.10
我下载了elasticsearch并希望构建
gradle build
结果:
A problem occurred configuring root project 'buildSrc'.
> Could not resolve all dependencies for configuration ':classpath'.
> Could not resolve com.bmuschko:gradle-nexus-plugin:2.3.1.
Required by:
:buildSrc:unspecified
> Could not resolve com.bmuschko:gradle-nexus-plugin:2.3.1.
> Could not get resource 'https://jcenter.bintray.com/com/bmuschko/gradle-nexus-plugin/2.3.1/gradle-nexus-plugin-2.3.1.pom'.
> Could not GET 'https://jcenter.bintray.com/com/bmuschko/gradle-nexus-plugin/2.3.1/gradle-nexus-plugin-2.3.1.pom'.
> peer not authenticated
如果我只是尝试通过浏览器或wget下载此pom,则访问它是没有问题的。
我发现了很多类似的问题/帖子,但是到目前为止我无法解决这个问题。我该怎么做才能解决这个问题?
答案 0 :(得分:1)
错误peer not authenticated
表示https证书验证失败。与您的浏览器警告证书验证失败的方式不同。例如:
这在现实世界中应该意味着您正在下载依赖关系的网站的真实性无法验证,并且您可能会下载已修改的或恶意内容。< / p>
在实践中,虽然你更有可能看到这个错误,因为你是一个公司代理,他们喜欢篡改https证书以检查所有流量。如果您的错误是由corp代理引起的,则修复它的正确方法是使用随JDK分发的keytool
实用程序将代理证书导入您的信任库。请参阅here和here。
如果不是由于公司代理,您应该调查证书验证失败的原因。也许您的认证机构列表已过时。也许有人真的想对你Man In The Middle attack。也许您尝试访问的网站的证书已过期且尚未续订(对于高度可见的公共网站来说,这种情况很可能发生,但可能会发生)
解决方法是禁用安全检查或完全放弃安全性并回退到http。画一个愚蠢的比喻,这就像解雇你的保镖,因为他们说你不应该进入这个阴暗的区域。但是,我必须承认,这在某些情况下仍然有用。因此,上面的图像抛出相同的警告:“你不应该继续”:
幸运的是,jCenter仍然可用于普通的旧http。在buildSrc/build.gradle
中更改您的存储库定义
jCenter()
到
jcenter {
url "http://jcenter.bintray.com/"
}
您应该主要在buildScript
部分的#25行上执行此操作,以摆脱插件下载错误,但您也应该在行#50中进行此更改。代码依赖。
答案 1 :(得分:1)
在我的特定情况下(Ubuntu),这个错误可以通过
来解决sudo update-ca-certificates -f
我在elastic-discussion-board上找到了关于不同问题的建议(感谢vincent)