代码之家  ›  专栏  ›  技术社区  ›  Atul

收到致命警报:协议版本生成失败gradle/maven

  •  7
  • Atul  · 技术社区  · 8 年前

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

       > 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
    

    环境:

    • 爪哇7
    • 梯度3.5
    3 回复  |  直到 7 年前
        1
  •  25
  •   Atul    7 年前

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

    等级:

    检查渐变版本

    gradle --version
    

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

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

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

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

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

    马文:

    如果你正在使用 马文 使用下面给出的命令

    mvn -Dhttps.protocols=TLSv1.2 install
    
        2
  •  0
  •   George Vinokhodov    8 年前

    如果您对pom.xml有类似的问题,只要尽可能将maven编译器插件的源和目标版本更新到1.8即可。

        3
  •  0
  •   Fullstack Guy    7 年前

    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

    所以,在EclipseIDE中,

    打开“运行->运行配置”;展开“Gradle项目”并选择运行配置(生成)

    如下设置jvm参数 set jvm argument