Las dependencias de Maven fallan con un error 501
Recientemente, los trabajos de compilación de Maven que se ejecutan en Jenkins fallan con la siguiente excepción que indica que no pudieron extraer dependencias de Maven Central y deberían usar HTTPS . No estoy seguro de cómo cambiar las solicitudes de HTTP a HTTPS . ¿Alguien podría orientarme sobre este asunto?
[ERROR] Extensión de compilación irresoluble: No se pudo resolver
el complemento o una de sus dependencias: No se pudieron recopilar las dependencias para : No se pudo leer el descriptor del artefacto para : No se pudo transferir el artefacto desde/hacia la central ( http://repo.maven.apache. org/maven2 ): Error al transferir el archivo: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom . El código de retorno es:org.apache.maven.wagon:wagon-ssh:2.1
org.apache.maven.wagon:wagon-ssh:jar:2.1 ()
org.apache.maven.wagon:wagon-ssh:jar:2.1
org.apache.maven.wagon:wagon-ssh:pom:2.1
501, ReasonPhrase:HTTPS Required. -> [Help 2]
No se pudo resolver la espera a que Jenkins termine de recopilar
data[ERROR]
el complemento o una de sus dependencias: no se pudo leer el descriptor del artefacto para : no se pudo transferir el artefacto desde/hacia la central ( http://repo.maven.apache.org/maven2 ): no se pudo transferir archivo: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom . El código de retorno es:org.apache.maven.plugins:maven-clean-plugin:2.4.1
org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
501 , ReasonPhrase:HTTPS Required. -> [Help 1]
El motivo del error observado se explica en Central 501 HTTPS requerido
A partir del 15 de enero de 2020, el Repositorio Central ya no admite comunicaciones inseguras a través de HTTP simple y requiere que todas las solicitudes al repositorio estén cifradas a través de HTTPS.
Parece que las últimas versiones de Maven (probadas con 3.6.0, 3.6.1) ya utilizan la URL HTTPS de forma predeterminada.
Estas son las fechas en las que cambiarán los principales repositorios:
Es posible que sus compilaciones de Java fallen a partir del 13 de enero (si aún no ha cambiado el acceso al repositorio a HTTPS)
Actualización: Parece que desde maven 3.2.3 se accede a maven central a través de HTTPS Consulte https://stackoverflow.com/a/25411658/5820670
Registro de cambios de Maven ( http://maven.apache.org/docs/3.2.3/release-notes.html )
Estoy enfrentando el mismo problema. Probé dos soluciones y ambas funcionan bien para mí.
- Actualice el repositorio de la versión Maven (versión Maven >= 3.2.3)
- Restrinja la versión actual de Maven para usar enlaces HTTPS.
Actualice el repositorio de versiones de Maven:
Descargue el binario de Apache Maven que incluye las direcciones https predeterminadas ( binario Apache Maven 3.6.3 ). Y abra la ventana de diálogo Opciones en las herramientas de la barra de menú de NetBeans ( Vista de diálogo Java Maven ). Y seleccione la opción de exploración en el cuadro de lista de inicio de Maven ( Vista del cuadro de lista de inicio de Maven ). Después de agregar la versión recién descargada de Apache Maven ( Vista actualizada del cuadro de lista de inicio de Maven ), el proyecto se compila y se ejecuta correctamente.
Restrinja la versión actual de Maven para usar enlaces HTTPS:
Incluya el siguiente código en pom.xml de su proyecto.
<project>
...
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
A partir del 15 de enero de 2020, el Repositorio Central ya no admite comunicaciones inseguras a través de HTTP simple y requiere que todas las solicitudes al repositorio estén cifradas a través de HTTPS .
Si recibe este error, debe reemplazar todas las referencias URL a Maven Central con sus contrapartes HTTPS canónicas.
( fuente )
Hemos realizado los siguientes cambios en build.gradle de mi proyecto:
Viejo:
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
Nuevo:
repositories {
maven { url "https://repo.maven.apache.org/maven2" }
}
Intente acceder a la siguiente URL en cualquier navegador. Volverá 501
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Intente con https. Descargará un archivo pom.xml:
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Agréguelo ( https://repo.maven.apache.org/maven2 ) en el archivo settings.xml:
<repositories>
<repository>
<id>Central Maven repository</id>
<name>Central Maven repository https</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>