No se puede hacer un uso experto HTTPS a pesar de la configuración settings.xml donde tengo repositorios con HTTPS

Giorgi Tsiklauri:

He investigado casi toda Stackoverflow, sitios web Apache y todo lo que podía hacer en un día, pero no pude conseguir este trabajo.

Tengo Maven 3.0.5la Jdk8configuración (que es de particular, pila, y las versiones no deban ser revisadas) dentro de un entorno de vagabundo. Estoy al tanto de Apachela decisión 's para obligar a todos los repositorios Maven utilizar sólo HTTPS, Maven clientes de otro modo no estarán hablando a los servidores del repositorio.

Parece que he configurado todos los ajustes necesarios en mi ~/.m2/settings.xmly por alguna razón muy extraña, cuando corro cualquier comando (cualquier fase de construcción, por ejemplo mvn clean), los valores predeterminados de Maven para HTTP y no se preocupa por settings.xml - Todavía intenta descargar referencias / dependencias con el protocolo HTTP.

Ejemplo de mi settings.xml(Para simplificar, me quita cosas específicas del proyecto y sólo esto fui, no funciona incluso con esto)

<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">
<repositories>
  <repository>
    <id>central</id>
    <url>https://repo1.maven.org/maven2/</url>
  </repository>

  <repository>
    <id>central</id>
    <url>https://repo.maven.apache.org/maven2/</url>
  </repository>
</repositories>

y esto es lo que estoy haciendo para el comando de prueba mvn archetype:generate(el problema es persistente para cualquier otro comando de fase de construcción)

[INFO] Análisis en busca de proyectos ... Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom [ADVERTENCIA] no se pudo recuperar plugin de descriptor para org.apache.maven.plugins: maven-limpio-plugin: 2,5: org.apache.maven.plugins Programas: maven-limpio-plugin: 2,5 o una de sus dependencias no se pudo resolver : No se pudo leer descriptor artefacto para org.apache.maven.plugins: maven-limpio-plugin: jar: 2.5 Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- instalar-plugin / 2.3 / maven-plugin-install-2.3.pom[ADVERTENCIA] No se pudo recuperar plugin de descriptor para org.apache.maven.plugins: Maven-install-plugin: 2.3: org.apache.maven.plugins plugin: maven-install-plugin: 2.3 o uno de sus dependencias no se pudo resolver : No se pudo leer el descriptor de artefacto para org.apache.maven.plugins: maven-install-plugin: jar: 2.3 Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- deploy-plugin / 2,7 / maven-deploy-plugin-2.7.pom [ADVERTENCIA] No se pudo recuperar plugin de descriptor para org.apache.maven.plugins: de implementar maven-plugin: 2,7: org.apache.maven.plugins Programas: experto -Implemente-plugin: 2.7 o uno de sus dependencias no se podían resolver: no se pudo leer el descriptor de artefacto para org.apache.maven.plugins: maven-plugin de implementar: tarro: 2.7 Descargando:http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-site-plugin/3.0/maven-site-plugin-3.0.pom [ADVERTENCIA] No se pudo recuperar el descriptor plugin para la org. apache.maven.plugins: maven-sitio-plugin: 3.0: org.apache.maven.plugins plugin: in situ maven-plugin: 3.0 o uno de sus dependencias no se podían resolver: no se pudo leer el descriptor de artefacto para org.apache. maven.plugins: maven-sitio-plugin: tarro: 3.0 Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin -1.3.pom[ADVERTENCIA] No se pudo recuperar el descriptor Plugin para org.apache.maven.plugins: maven-antRun-plugin: 1.3: org.apache.maven.plugins plugin: maven-antRun-plugin: 1.3 o uno de sus dependencias no se pudo resolver : No se pudo leer el descriptor de artefacto para org.apache.maven.plugins: maven-antRun-plugin: tarro: 1.3 Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- montaje-plugin / 2,2-beta-5 / maven-montaje-plugin-2,2-beta-5.pom [ADVERTENCIA] No se pudo recuperar descriptor Plugin para org.apache.maven.plugins: maven-montaje-plugin: 2,2-beta- 5: org.apache.maven.plugins plugin: maven-montaje-plugin: 2,2-beta-5 o una de sus dependencias no podían resolverse: no se pudo leer descriptor artefacto para org.apache.maven.plugins: maven-montaje- plugin: jar: 2,2-beta-5 Descarga:http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.1/maven-dependency-plugin-2.1.pom [ADVERTENCIA] No se pudo recuperar el descriptor plugin para la org. apache.maven.plugins: maven-dependencia-plugin: 2.1: org.apache.maven.plugins plugin: dependencia maven-plugin: 2.1 o uno de sus dependencias no se podían resolver: no se pudo leer el descriptor de artefacto para org.apache. maven.plugins: maven-dependencia-plugin: tarro: 2.1 Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin -2.0.pom[ADVERTENCIA] No se pudo recuperar plugin de descriptor para org.apache.maven.plugins: de liberación maven-plugin: 2,0: org.apache.maven.plugins Programas: maven-release-plugin: 2,0 o una de sus dependencias no se pudo resolver : No se pudo leer descriptor artefacto para org.apache.maven.plugins: maven-release-plugin: jar: 2.0 Descargando: http://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata. xml Descargando: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml [ADVERTENCIA] no se pudo transferir metadatos org.apache.maven.plugins / maven-metadata.xml desde / hasta el centro ( http://repo.maven.apache.org/maven2 ): Error al archivo de transferencia: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata .xml. El código de retorno es: 501, ReasonPhrase: HTTPS necesario. [ADVERTENCIA] No se pudo transferir metadatos org.codehaus.mojo / maven-metadata.xml desde / hasta el centro ( http://repo.maven.apache.org/maven2 ): Error al archivo de transferencia: http: //repo.maven .apache.org / maven2 / org / Codehaus / mojo / maven-metadata.xml . El código de retorno es: 501, ReasonPhrase: HTTPS necesario. [ADVERTENCIA] La falta de transferencia org.apache.maven.plugins / maven-metadata.xml de http://repo.maven.apache.org/maven2 fue almacenado en caché en el repositorio local, la resolución no se volverá a intentar hasta que el intervalo de actualización de central ha transcurrido o actualizaciones están forzados. Error original: No se pudo transferir metadatos org.apache.maven.plugins / maven-metadata.xml desde / hasta el centro ( http://repo.maven.apache.org/maven2): Error al archivo de transferencia: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml . El código de retorno es: 501, ReasonPhrase: HTTPS necesario. [ADVERTENCIA] La falta de transferencia de org.codehaus.mojo / maven-metadata.xml de http://repo.maven.apache.org/maven2 se almacena en caché en el repositorio local, no se volverá a intentar la resolución hasta que el intervalo de actualización de la central tiene transcurridos o actualizaciones se ven obligados. Error original: No se pudo transferir metadatos org.codehaus.mojo / maven-metadata.xml desde / hasta el centro ( http://repo.maven.apache.org/maven2 ): Error al archivo de transferencia: http: //repo.maven .apache.org / maven2 / org / Codehaus / mojo / maven-metadata.xml . El código de retorno es: 501, ReasonPhrase: HTTPS necesario .

¿Qué debo hacer? como se ve, a través de HTTP, recibo correspondiente HTTP 501.

Giorgi Tsiklauri:

Como me he pasado todo el día con esto, creo que vale la pena compartir la experiencia, los resultados de la depuración y la forma de resolver este problema.

Había dos problemas:

1) [ADVERTENCIA] No se pudo recuperar el descriptor plug-in para .. (cualquiera que sea) Plugin nombre advertencias durante casi cualquier fase de construcción (limpio, paquete o etc.), que dice que (importante >>) la recuperación de plugin de descriptores o sus dependencias ( Lo que significa que los plugins , y no a las dependencias del proyecto !) no va exitosa.

Razón de esto (en este caso) es que Maven intenta comunicarse con una máquina de punto final (repositorio) a través de HTTP (como se ve en la cita de la cuestión), a pesar de (!), Que ha personalizado la configuración de mi .m2\settings.xmlarchivo y todas las entradas de definición del repositorio se definen con HTTPS , respectivamente, parece como experto debe intentar todo a través de HTTPS ..pero no, que utiliza HTTP para los plugins, y es cualquier comunicación HTTP con los repositorios de Maven prohibido desde el 15 de enero, 2020 .

La forma resolví esto es definir y configurar <profiles/>y <pluginRepositories/>como @carlspring sugerido , pero tenía que elaborar y ampliar esa respuesta un poco. Por lo tanto, aquí está mi lista settings.xmlde ejemplo: (nota, que sólo para estar seguro, que he proporcionado repositorios alternativos en tanto - perfiles y repositorios)

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"                                                                                                                                     $    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                        https://maven.apache.org/xsd/settings-1.0.0.xsd">

<profiles>
<profile>
   <id>ssl-profile</id>
   <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <repositories>
        <repository>
            <id>central-1</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central-2</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>
  <repositories>
    <repository>
      <id>central1</id>
      <url>https://repo1.maven.org/maven2/</url>
    </repository>
    <repository>
      <id>central2</id>
      <url>https://repo.maven.apache.org/maven2/</url>
    </repository>
  </repositories>
  </profiles>
</settings>

Después de esto se resolvió, y finalmente maven tomó esta configuración y comenzó a intentar conectarse a todos los repositorios a través de HTTPS , tuve otro - segundo problema.

2) No contrario autenticado seguido por el código de retorno es: 501, ReasonPhrase: HTTPS necesario.

Este fue un poco complicado, pero la manera de resolver esto es para jugar con almacén de confianza cacertsarchivo. En primer lugar, comprobar si tiene almacén de confianza de archivos cacertsy si está vacía o no! que no debe estar vacío y esto es muy importante. Parece que en OpenJDK11uno y otro se basa en algunas distribuciones de Windows / Linux, cacertsel archivo no se encuentra o vaciar; Sin embargo, de acuerdo con mi observación, que estaba presente en OracleJDKconstruye.

  • En Windowsconstruye, debe ser bajo %JAVA_HOME%\lib\security\;
  • En Linux se acumula, puede variar (dependiendo de la distribución de Linux y su configuración), pero en mi caso, fue bajo /etc/ssl/certs(y creo que es la carpeta certificados de Linux, no es particularmente uno de Java).

Si ve (y se ve más probable, si usted tiene este par no autenticado problema) que o bien no tiene cacertsarchivo o está vacío (simplemente comprobar el tamaño del archivo, debe ser mayor que unos pocos bits), o bien puede:

  • Basta con copiar y pegar existente cacertsarchivo de alguna otra construcción JDK / Jre;
  • Generar un cacertsarchivo de almacén de confianza y agregar el certificado (s) de ella (en este caso, tendrá que añadir tantos certificados como sea necesario, por lo que, tal vez es más fácil ir con sólo un copiar y pegar)

Espero que esto ayude.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=478687&siteId=1
Recomendado
Clasificación