42 votes

Impossible de transférer l'artefact (https://repo.maven.apache.org/maven2) : A reçu une alerte fatale : protocol_version -> [Aide 1]

Je suis nouveau dans Maven et j'essaie de configurer mon premier projet dans Maven mais je reçois le message d'erreur ci-dessous lorsque je fais " Run as -> Maven install " dans Eclipse. Voici mes settings.xml et pom.xml

Paramètres.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>

Message d'erreur :

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

Comment résoudre l'alerte fatale Received : protocol_version ? Ma version de java est 1.7 et la version de maven est 3.3.3.

101voto

Eric S Points 875

Sonatype ne supporte plus TLSv1.1 et inférieur (en vigueur le 18 juin 2018). À mon avis, vous utilisez le protocole TLSv1.1 ou inférieur.

La documentation que j'ai citée vous donne 4 options :

  1. Mettez à niveau votre runtime Java, par exemple avec les builds OpenJDK ou le support payant d'Oracle
  2. Configurez votre runtime Java pour activer TLS 1.2 en ajoutant -Dhttps.protocols=TLSv1.2
  3. Utiliser un gestionnaire de référentiel qui utilise une version de Java supportant TLS 1.2
  4. Revenez à http jusqu'à ce que vous puissiez réaliser l'une des étapes de remédiation ci-dessus.

Je l'ai corrigé moi-même en utilisant simplement -Dhttps.protocols=TLSv1.2 comme argument VM.

3 votes

Cool...Merci...J'ai mis à jour ma version de java à 8 et le problème est maintenant résolu....

2 votes

Merci d'avoir rappelé l'existence de Java8. Sur mon mac, j'ai à la fois Java7 et Java8, et c'est pourquoi j'ai eu l'erreur maven. Les messages d'erreur sont très trompeurs !

8 votes

Une autre solution serait de définir "-Dhttps.protocols=TLSv1.2" à la variable d'environnement "MAVEN_OPTS" afin que maven puisse passer cet argument jvm au runtime Java7 sous-jacent qui est utilisé pour construire votre application.

16voto

Yoav R. Points 441

Pour une solution permanente (principalement requise dans Java 7) - dans votre répertoire de construction (où vous faites le mvn à partir de) ajouter un répertoire :

.mvn (dans cmd mkdir .mvn )

et créez-y un fichier

jvm.config

et y mettre la ligne suivante :

-Dhttps.protocols=TLSv1.2

0 votes

Cela a fonctionné pour moi lorsque j'ai exécuté Maven à partir du répertoire de construction.

2 votes

Si l'astuce ci-dessus ne fonctionne pas, il suffit d'ajouter l'option -Dhttps.protocols=TLSv1.2 à la commande mvn comme ceci : mvn install -Dhttps.protocols=TLSv1.2

0 votes

La solution ci-dessus est celle que je cherchais et elle a bien fonctionné :)

9voto

La solution la plus simple est de configurer les arguments d'exécution de votre JVM. Sur eclipse, vous pouvez le faire comme suit :

allez dans Windows>préférences>java>JREs installés Cliquez sur le JRE/JDK installé que vous utilisez pour votre projet.

cliquez sur "modifier" à gauche, et ajoutez -Dhttps.protocols=TLSv1.2 dans le champ de saisie des arguments de la VM par défaut.

voir la capture d'écran :

Screenshot

5voto

sa3036 Points 91

J'ai effectué une mise à niveau de Java 1.7 à Java 1.8 et j'ai obtenu la même erreur. Pour résoudre cette erreur, j'ai vérifié la version de mvn en utilisant mvn -version et j'ai constaté que JAVA_HOME utilisait toujours la version 1.7 de Java. J'ai changé JAVA_HOME dans la variable d'environnement pour pointer vers Java 1.8 jre dans JDK

J'espère que cela aidera quelqu'un.

0 votes

Résolu ! Merci.

4voto

Georgina Diaz Points 51

J'ai mis mon paramètres.xml dans le répertoire .m2, comme ici : https://github.com/alipay/sofa-rpc/pull/190/files

Alors, exécutez mvn install et toutes les dépendances ont commencé à se télécharger. Je n'ai jamais eu de fichier settings.xml auparavant et je n'utilise pas de proxy. J'espère que cela aidera quelqu'un.

PD. J'ai jdk 1.7 et Maven 3.3.9.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X