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

时间:2018-06-28 20:40:31

标签: java maven gradle java-7 java-6

我的项目构建之一因以下异常而开始失败

   > 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
  • 3.5级

3 个答案:

答案 0 :(得分:23)

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

答案 1 :(得分:0)

如果pom.xml存在类似问题,请尽可能将maven-compiler-plugin源和目标版本更新为1.8。

答案 2 :(得分: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

因此,在Eclipse IDE中,

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

按如下所示设置JVM参数 set jvm argument