繁体   English   中英

无法传输工件 (https://repo.maven.apache.org/maven2):收到致命警报:protocol_version -> [帮助 1]

[英]Could not transfer artifact (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version -> [Help 1]

我是 Maven 的新手,尝试在 Maven 中设置我的第一个项目,但是当我在 Eclipse 中执行“Run as -> Maven install”时收到以下错误消息。下面是我的设置。xml 和 pom.xml

设置.xml

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
 <localRepository>C:\Users\Iam\.m2\repository</localRepository>
  <profiles>
    <profile>
      <repositories>
    <repository>
        <id>central</id>
        <url>http://central.maven.org/maven2/</url>
        </repository>
    </repositories>
      <pluginRepositories>
      </pluginRepositories>
    </profile>
  </profiles>
</settings>

POM.XML

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>com.mytest</groupId> 
  <artifactId>MySpringBootMaven</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.11.RELEASE</version>
    </parent>


<build>
    <plugins>

      <plugin>
        <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>


        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.5</version><!--$NO-MVN-MAN-VER$-->
                <configuration>
                    <warnName>Test.war</warnName>
                </configuration>
            </plugin>
    </plugins>

</build>
</project>

错误信息:

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.springframework.boot:spring-boot-maven-plugin:jar:1.5.11.RELEASE
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:302)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:218)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:287)
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:103)
    ... 27 more
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact org.springframework.boot:spring-boot-maven-plugin:pom:1.5.11.RELEASE from/to central (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:287)
    ... 30 more
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact org.springframework.boot:spring-boot-maven-plugin:pom:1.5.11.RELEASE from/to central (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version

如何解决 Received fatal alert: protocol_version? 我的java版本是1.7,maven版本是3.3.3

Sonatype 不再支持 TLSv1.1 及更低版本(2018 年 6 月 18 日生效)。 我的猜测是您使用的是 TLSv1.1 或以下协议。

我列出的文档为您提供了 4 个选项:

  1. 升级您的 Java 运行时,例如使用 OpenJDK 构建或 Oracle 付费支持
  2. 通过添加 -Dhttps.protocols=TLSv1.2 配置您的 Java 运行时以启用 TLS 1.2
  3. 使用支持 TLS 1.2 的 Java 版本的存储库管理器
  4. 恢复到 http,直到您可以完成上述修复步骤之一。

我自己通过使用 -Dhttps.protocols=TLSv1.2 作为 VM 参数来修复它。

对于永久解决方案(在 Java 7 中主要需要) - 在您构建目录(从中执行mvn命令的位置)中添加目录:

.mvn (在 cmd mkdir .mvn

并在其中创建文件

jvm.config

并输入以下行:

-Dhttps.protocols=TLSv1.2

最简单的解决方案是配置 JVM 运行时参数。 在日食上,您可以按以下方式进行:

转到 windows>preferences>java>installed JREs 单击您用于项目的 Intalled JRE/JDK

单击右侧的“编辑”,然后在默认 VM 参数输入字段中添加-Dhttps.protocols=TLSv1.2

看截图:

截屏

您尝试安装的包不支持 TLS1.1 ,您可能默认使用 TLS 1.1。 通过将-Dhttps.protocols=TLSv1.2添加到您的 Maven Build 命令来配置您的 Java 运行时以启用 TLS 1.2 将解决该问题。

例如: mvn clean install -Dhttps.protocols=TLSv1.2

我已经从 Java 1.7 升级到 Java 1.8 并遇到了同样的错误。 为了解决这个错误,我使用mvn -version检查了 mvn 版本,发现 JAVA_HOME 仍在使用 Java 1.7。 我将环境变量中的 JAVA_HOME 更改为指向 JDK 中的 Java 1.8 jre

希望这可以帮助某人。

我在 .m2 目录中设置了我的settings.xml文件,就像这里的一样: https : //github.com/alipay/sofa-rpc/pull/190/files

然后 exec mvn install和所有依赖项开始下载。 我以前没有 settings.xml 文件,我没有使用任何代理。 希望它可以帮助某人。

PD。 我有 jdk 1.7 和 Maven 3.3.9

它同时需要:配置 JVM 运行时参数以及具有 settings.xml,在我完成这两项工作之后。 仅更新 JVM 运行时参数没有帮助。

我通过在位于C驱动器的 Users 文件夹中的.m2文件夹中添加settings.xml文件并通过右键单击pom.xml -> Maeven -> Update Project来更新 Project 解决了SpringToolSuit 中的这个错误。

确保选择 Force update of snapshots/releases

就我而言,在 Eclipse 中禁用了 Maven 依赖项的自动更新。
解决方案:
转到 Windows-> 首选项-> Maven
并取消选中复选框

不要自动更新远程存储库的依赖项

然后更新项目
右键单击项目-> maven-> 更新项目

我遇到了同样的问题,我在这里尝试了大部分答案,但仍然无效。 我的问题是我的 IDE 上的代理设置。 所以记住检查代理设置也很重要。 文件 > 设置 > 系统设置 > HTTP 代理 - 选择自动检测代理设置

在我的新笔记本电脑 (Win10) 上,我降级了 maven 3.8.7->3.6.3 和 jdk 19->1.8 Maven 3.8.7 阻止了很多旧存储库,有时确实需要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM