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

Received fatal alert: protocol_version build failure Gradle/Maven

我的一个项目的构建开始失败,出现以下异常

   > 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

环境:

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

GRADLE:

检查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

如果您遇到与 pom.xml 类似的问题 - 请尽可能将 maven-compiler-plugin 源和目标版本更新为 1.8。

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,

打开'Run->Run Configurations';展开 'Gradle Project' 和 select 运行 配置(构建)

设置JVM参数如下 set jvm argument