Recientemente, los trabajos de compilación de Maven que se ejecutan en Jenkins fallan, con la excepción a continuación que dice que no pueden extraer dependencias de Maven Central y que deben usar HTTPS . No estoy seguro de cómo cambiar las solicitudes de HTTP a HTTPS . ¿Podría alguien guiarme en este asunto?
[ERROR] Extensión de compilación irresoluble: no se pudo resolver el
complementoorg.apache.maven.wagon:wagon-ssh:2.1
o una de sus dependencias: no se pudieron
recopilar dependencias paraorg.apache.maven.wagon:wagon-ssh:jar:2.1 ()
: no se
pudo leer el descriptor de artefactos paraorg.apache.maven.wagon:wagon-ssh:jar:2.1
:
No se pudo transferir el artefactoorg.apache.maven.wagon:wagon-ssh:pom:2.1
desde / a la central ( http: //repo.maven.apache. org / maven2 ): no se
pudo 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:501, ReasonPhrase:HTTPS Required. -> [Help 2]
Esperar a que Jenkins termine de recopilar el
data[ERROR]
complementoorg.apache.maven.plugins:maven-clean-plugin:2.4.1
o una de sus dependencias no se pudo resolver: no se
pudo leer el descriptor de artefactos paraorg.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
:
No se pudo transferir el artefactoorg.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
de / a central ( http://repo.maven.apache.org/maven2 ): no se
pudo archivo de transferencia: 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:501 , ReasonPhrase:HTTPS Required. -> [Help 1]
fuente
settings.xml
en jenkins la url central de mavenRespuestas:
La razón del error observado se explica en Central 501 HTTPS Requerido
Parece que las últimas versiones de Maven (probadas con 3.6.0, 3.6.1) ya están usando la URL HTTPS de forma predeterminada.
Estas son las fechas en que cambiarán los principales repositorios:
Sus compilaciones de Java podrían romperse a partir del 13 de enero (si aún no ha cambiado el acceso de 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 )
fuente
settings.xml
archivo (y vótelas, por favor, ya que esta es la solución correcta, aparte de usar un Maven parcheado).settings.xml
para usar repositorios HTTPS ... con los cuales puede,wget
pero por alguna razón muy extrañamvn archetype:generate -X
(para probar si las dependencias se pueden descargar) todavía imprime que está accediendo a ¿Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
Alguna ayuda, por favor?Estoy enfrentando el mismo problema. Intenté dos soluciones, y ambas funcionan bien para mí.
Actualice el repositorio de la versión de Maven:
Descargue el binario 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 ( Java Maven Dialog View ). 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 recientemente descargada de Apache Maven ( Vista de cuadro de lista de inicio actualizada de Maven ), el proyecto se construye y se ejecuta con éxito.
Restrinja la versión actual de Maven para usar enlaces HTTPS:
Incluya el siguiente código en pom.xml de su proyecto.
fuente
( fuente )
Hemos realizado los siguientes cambios en el build.gradle de mi proyecto:
Antiguo:
Nuevo:
fuente
Intente presionar la siguiente URL en cualquier navegador. Devolverá 501
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Por favor, 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
Añádalo ( https://repo.maven.apache.org/maven2 ) en el archivo setting.xml:
fuente
Actualice el repositorio central de Maven y use https en lugar de http .
fuente
Estaba usando una instalación limpia de Maven / Java en un contenedor Docker.
Para mí, tuve que
cd $M2_HOME/conf
editar elsettings.xml
archivo allí. Agregue el siguiente bloque dentro<mirrors>...</mirrors>
fuente
Estaba usando una versión desactualizada de Maven (3.0.3 y 3.1). Estas versiones anteriores ya no admiten repositorios http (como se mencionó anteriormente). Actualizar a Maven 3.6 fue la solución para mí.
fuente
Maven se está moviendo a HTTPS y está deshabilitando el acceso HTTP
En pocas palabras, desde el 15 de enero de 2020, el repositorio de Maven Central ya no admite conexiones HTTP (otros repositorios están haciendo lo mismo). Por lo tanto, indicará su configuración de Maven / Gradle para usar una URL HTTPS.
Solución:
Puede elegir uno de los siguientes tres enfoques.
Agregue un repositorio en el
pom.xml
archivo de su proyectoAgregue el repositorio a un perfil en el
settings.xml
archivo.Para Gradle:
Solo reemplace la URL para la versión HTTPS.
fuente
$M2_HOME
o$PATH
solo apuntarán a una de ellas, que será su versión predeterminada de Maven. Preferiría desinstalar la anterior antes de instalar una nueva. Pero eso depende de tus necesidades.Se agregó el siguiente segmento de código a setting.xml y se resolvió el problema,
fuente
Tengo el mismo problema, pero uso GitLab en lugar de Jenkins. Los pasos que tuve que hacer para superar el problema:
Me doy cuenta de que es más específico para mi configuración. Pero sin seguir todos los pasos anteriores, seguiría recibiendo este mensaje de error
Return code is: 501 , ReasonPhrase:HTTPS Required
fuente
Como se indicó en otras respuestas, ahora se requiere https para realizar solicitudes a Maven Central, mientras que las versiones anteriores de Maven usan http .
Si no desea / no puede actualizar a Maven 3.2.3+, puede hacer una solución agregando el siguiente código en su MAVEN_HOME \ conf \ settings.xml en la
<profiles>
sección:Esta será siempre una configuración activa a menos que la desactive / anule en su POM cuando sea necesario.
fuente
Para todos los codificadores corporativos, idealmente, si obtiene este error, significa que su código base todavía se está construyendo a partir de una comunidad de código abierto. Debe anular el repositorio "central" con el administrador de repositorio Maven de su empresa interna.
Puede ir a settings.xml y anular la URL de su repositorio central de http: // a https: //
Encuentre las secciones de espejos y agregue la siguiente entrada:
En la sección de URL, si estaba utilizando http://repo1.maven.org/maven2/ o http://repo.maven.apache.org/maven2/ entonces
Reemplace http://repo1.maven.org/maven2/ con https://repo1.maven.org/maven2/
Reemplace http://repo.maven.apache.org/maven2/ con https://repo.maven.apache.org/maven2/
Lo ideal es utilizar la URL de gestión / repositorio de control de origen de su empresa aquí. Como esto bloqueará cualquier contacto con la comunidad de repositorio Maven de código abierto.
Como se menciona en otras respuestas, en vigencia a partir del 15 de enero de 2020, el repositorio central de Maven no admite comunicación insegura sobre HTTP simple.
fuente
Para mí (codificador corporativo) también agregué un repositorio espejo en
settings.xml
el problema solucionado. También estoy usando Maven dentro de un contenedor acoplable.fuente
Usando Ubuntu 16.04, java 1.8.0_201.
Desinstalé Maven viejo e instalé Maven 3.6.3, todavía recibí este error de que las dependencias de Maven están fallando con un error 501.
Se dio cuenta de que podría tratarse de un problema de almacén de confianza / almacén de claves asociado con la necesidad de https. Descubrió que ahora puede configurar las opciones de -Djavax utilizando un archivo jvm.config, consulte: https://maven.apache.org/configure.html .
Como también estoy usando Tomcat, copié la configuración del almacén de claves y el almacén de confianza de Tomcat (setenv.sh) a mi jvm.config y luego funcionó.
También hay una opción para pasar esta configuración en 'exportar MAVEN_OPTS' (cuando se usa mvn generate) pero aunque esto detuvo el error 501, creó otro: esperaba un archivo pom.
Crear un archivo jvm.config separado funciona perfectamente, solo póngalo en la raíz de su proyecto.
Espero que esto ayude a alguien, ¡me llevó todo el día resolverlo!
fuente
El mismo problema también está ocurriendo para jcenter .
Los proyectos que obtienen sus dependencias usando el mismo comenzarán a enfrentar problemas. Para soluciones rápidas, haga lo siguiente en su build.gradle
en vez de
utilizar este:
fuente
El error:
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: 501, ReasonPhrase: HTTPS obligatorio.
Análisis de raíz de la causa:
Maven central espera que los clientes usen https, pero el cliente solo realiza una solicitud HTTP simple.
Por lo tanto, la solicitud para descargar el paquete llamado 'wagon-ssh-2.1.pom' había fallado.
¿Como solucionar el problema?
Reemplace la URL " http://repo.maven.apache.org/maven2 "
con " https://repo.maven.apache.org/maven2 "
en el archivo pom.xml o en el archivo build.gradle del proyecto.
fuente
Compartir esto en caso de que alguien lo necesite:
Configuración antigua de Gradle (sin Gitlab, implementaciones de Docker, para proyectos simples)
Nueva configuración:
Observe el https. Feliz codificación :)
fuente
Mi entorno actual no es compatible con HTTPS, por lo que agregar la versión insegura del repositorio resolvió mi problema: http://insecure.repo1.maven.org según Sonatype
fuente
Agregue el siguiente repositorio en pom.xml .
fuente
http