java - mvn - maven windows
No se pudo transferir el artefacto(https://repo.maven.apache.org/maven2): Se recibiĆ³ una alerta fatal: protocol_version-> (5)
Soy nuevo en Maven y estoy tratando de configurar mi primer proyecto en Maven, pero recibo el siguiente mensaje de error cuando hago "Ejecutar como -> Instalación de Maven" en Eclipse. A continuación se encuentra mi settings.xml y pom.xml
Settings.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>
Mensaje de error:
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
¿Cómo resolver la alerta fatal recibida: protocol_version? Mi versión de Java es 1.7 y la versión de Maven es 3.3.3
Configuré mi archivo settings.xml en el directorio .m2 como el que se encuentra aquí: https://github.com/alipay/sofa-rpc/pull/190/files
Luego exec mvn install
y todas las dependencias comenzaron a descargarse. No he tenido un archivo settings.xml antes y no estoy usando ningún proxy. Espero que ayude a alguien.
PD. Tengo jdk 1.7 y Maven 3.3.9
La solución más sencilla es configurar los argumentos de tiempo de ejecución de JVM. En eclipse, puedes hacerlo de la siguiente manera:
Vaya a Windows> Preferencias> Java> JRE instalados haga clic en el JRE / JDK de Intalled que está usando para su proyecto
haga clic en "editar" en el derecho, y agregue -Dhttps.protocols=TLSv1.2
en el campo de entrada de los argumentos de VM predeterminados.
ver la captura de pantalla:
Me había actualizado de Java 1.7 a Java 1.8 y obtuve el mismo error. Para resolver este error, verifiqué la versión mvn usando mvn -version
y encontré que JAVA_HOME todavía estaba usando Java 1.7. Cambié JAVA_HOME en la variable de entorno para apuntar a Java 1.8 jre en JDK
Espero que esto ayude a alguien.
Para una solución permanente (requerida en su mayoría en Java 7), en el directorio de compilación (desde donde se mvn
comando mvn
) agrega el directorio:
.mvn
(en cmd mkdir .mvn
)
y en ella crear archivo
jvm.config
y en la línea siguiente:
-Dhttps.protocols=TLSv1.2
Sonatype ya no es compatible con TLSv1.1 y anteriores (a partir del 18 de junio de 2018). Mi conjetura es que está utilizando el protocolo TLSv1.1 o inferior.
La documentación que enumeré te da 4 opciones:
- Actualice su tiempo de ejecución de Java, por ejemplo, con compilaciones OpenJDK o soporte de pago de Oracle
- Configure su tiempo de ejecución de Java para habilitar TLS 1.2 agregando -Dhttps.protocols = TLSv1.2
- Use un administrador de repositorio que use una versión de Java que admita TLS 1.2
- Regrese a http hasta que pueda realizar uno de los pasos de remediación anteriores.
Lo arreglé yo solo usando -Dhttps.protocols = TLSv1.2 como un argumento de VM.