收到致命警报:protocol_version构建失败Gradle / Maven

问题描述 投票:7回答:3

我的项目之一的构建开始失败,下面给出了例外情况

   > Could not resolve org.slf4j:slf4j-api:[1.6.1,).
  > Failed to list versions for org.slf4j:slf4j-api.
     > Unable to load Maven meta-data from https://repo1.maven.org/maven2/org/slf4j/slf4j-api/maven-metadata.xml.
        > Could not GET 'https://repo1.maven.org/maven2/org/slf4j/slf4j-api/maven-metadata.xml'.
           > Received fatal alert: protocol_version

环境:

  • Java 7
  • Gradle 3.5
java maven gradle java-7 java-6
3个回答
25
投票

Maven Central和Bintray宣布他们将停止对TLS v1.1及更低版本的支持。如果您使用的是Java 6或7并使用Gradle版本2.1到4.8,则会受到影响。

摇篮:

检查gradle版本

gradle --version

如果所有这些都是真的,你必须采取行动:

  • JVM版本是Java 7u130或更低版本
  • Gradle版本介于2.1和4.8之间
  • 并且您已经声明了mavenCentral()或jcenter()的存储库{}

您可以采取以下任一操作来使用TLS v1.2 +:

建议使用前两个解决方案,因为第三个解决方案会打开可能的攻击向量。

来源:https://blog.gradle.org

Maven的: 如果您使用Maven,请使用下面给出的命令

mvn -Dhttps.protocols=TLSv1.2 install

0
投票

如果你有与pom.xml类似的问题 - 如果可能的话,只需将maven-compiler-plugin源和目标版本更新为1.8。


0
投票

IBM JDK

如果您使用的是IBM IDK,则需要设置以下JVM参数。

com.ibm.jsse2.overrideDefaultProtocol=SSL_TLSv2. 

请参阅IBM文档:https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/overrideSSLprotocol.html

所以,在IDE eclipse中,

打开'运行 - >运行配置';展开'Gradle Project'并选择运行配置(build)

将JVM参数设置如下set jvm argument

© www.soinside.com 2019 - 2024. All rights reserved.