Ne peut pas utiliser maven HTTPS malgré la configuration settings.xml où j'ai des dépôts avec HTTPS

Giorgi Tsiklauri:

J'ai fait des recherches StackOverflow la quasi-totalité, les sites Web Apache et tout ce que je pouvais faire en un jour, mais ne pouvait pas réussir à obtenir ce travail.

J'ai Maven 3.0.5avec la Jdk8configuration (qui est pour pile particulier, et les versions ne seront pas révisées) dans un environnement Vagrant. Je suis au courant de Apachela décision « pour forcer tous les référentiels Maven à utiliser uniquement HTTPS, les clients autrement Maven ne parlera pas aux serveurs du référentiel.

On dirait que j'ai configuré tous les paramètres nécessaires dans mon ~/.m2/settings.xmlet pour une raison étrange, quand je lance une commande (une phase de construction, par exemple mvn clean), par défaut Maven HTTP et ne se soucie pas settings.xml - il encore des tentatives de références de téléchargement / dépendances avec le protocole HTTP.

Exemple de mon settings.xml(Par souci de simplicité, j'ai retiré des choses spécifiques du projet et à gauche seulement cela, il ne fonctionne pas , même avec cela)

<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>

et voici ce que je reçois pour la commande de test mvn archetype:generate(le problème est persistant pour toutes les autres commandes de phase de construction)

[INFO] Recherche de projets ... Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom [AVERTISSEMENT] Impossible de récupérer le descripteur plugin pour le org.apache.maven.plugins: maven-plugin-propre: 2.5: Plugin org.apache.maven.plugins: Maven-propre plug - in: 2.5 ou une de ses dépendances ne pouvait pas être résolu : Impossible de lire le descripteur d'artefact pour org.apache.maven.plugins:-plugin-propre maven: jar: 2.5 Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- install-plugin / 2.3 / maven-plugin-install-2.3.pom[AVERTISSEMENT] Impossible de récupérer le descripteur plugin pour le org.apache.maven.plugins: plugin Maven-install-: 2.3: Plugin org.apache.maven.plugins: plugin Maven-install-: 2.3 ou une de ses dépendances ne pouvait pas être résolu : Impossible de lire le descripteur d'artefact pour org.apache.maven.plugins: maven-install-plugin: jar: 2.3 Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- Déployez-plugin / 2.7 / maven-plugin-deploy-2.7.pom [AVERTISSEMENT] Impossible de récupérer le descripteur plugin pour le org.apache.maven.plugins: maven-plugin-deploy: 2.7: Plugin org.apache.maven.plugins: maven -Déployez-plugin: 2.7 ou une de ses dépendances ne pouvaient être résolus: Impossible de lire le descripteur d'artefact pour org.apache.maven.plugins:-deploy-plugin maven: jar: 2.7 Téléchargement:http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-site-plugin/3.0/maven-site-plugin-3.0.pom [AVERTISSEMENT] Impossible de récupérer le descripteur plugin org. apache.maven.plugins: plugin Maven site-: 3.0: Plugin org.apache.maven.plugins: site-plugin Maven: 3.0 ou une de ses dépendances ne pouvaient être résolus: impossible de lire le descripteur d'artefact pour org.apache. maven.plugins: site-plugin maven: jar: 3.0 Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin -1.3.pom[AVERTISSEMENT] Impossible de récupérer le descripteur plugin pour le org.apache.maven.plugins: maven-plugin-antrun: 1.3: Plugin org.apache.maven.plugins: maven-plugin-antrun: 1.3 ou une de ses dépendances ne pouvait pas être résolu : Impossible de lire le descripteur d'artefact pour org.apache.maven.plugins: maven-plugin-antrun: jar: 1.3 Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- montage-plugin / 2.2-beta-5 / maven-assembly-plugin-2.2-beta-5.pom [AVERTISSEMENT] Impossible de récupérer le descripteur plugin pour le org.apache.maven.plugins: Maven Assembly-plugin-: 2,2-bêta- 5: Plugin org.apache.maven.plugins: maven-assembly-plugin: 2,2-bêta-5 ou l' une de ses dépendances ne pouvaient être résolus: Impossible de lire le descripteur artefact pour org.apache.maven.plugins: maven-assemblage plugin: jar: 2.2-beta-5 Téléchargement:http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.1/maven-dependency-plugin-2.1.pom [AVERTISSEMENT] Impossible de récupérer le descripteur plugin org. apache.maven.plugins: plugin Maven-dépendance-: 2.1: Plugin org.apache.maven.plugins: dépendance-plugin Maven: 2.1 ou une de ses dépendances ne pouvaient être résolus: impossible de lire le descripteur d'artefact pour org.apache. maven.plugins: dépendance-plugin maven: jar: 2.1 Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin -2.0.pom[AVERTISSEMENT] Impossible de récupérer du descripteur de plugin pour org.apache.maven.plugins:-release-plugin Maven: 2.0: Plugin org.apache.maven.plugins: maven-release-plugin: 2.0 ou une de ses dépendances ne pouvait pas être résolu : Impossible de lire le descripteur artefact pour org.apache.maven.plugins:-release-plugin maven: jar: 2.0 Téléchargement: http://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata. xml Téléchargement: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml [AVERTISSEMENT] Impossible de transférer les métadonnées org.apache.maven.plugins / maven-metadata.xml de / vers le centre ( http://repo.maven.apache.org/maven2 ): Echec de fichier de transfert: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata .xml. Code de retour est: 501, ReasonPhrase: HTTPS requis. [AVERTISSEMENT] Impossible de transférer des métadonnées org.codehaus.mojo / maven-metadata.xml de / vers le centre ( http://repo.maven.apache.org/maven2 ): Echec de fichier de transfert: http: //repo.maven .apache.org / maven2 / org / Codehaus / Mojo / maven-metadata.xml . Code de retour est: 501, ReasonPhrase: HTTPS requis. [ATTENTION] Le non-transfert org.apache.maven.plugins / maven-metadata.xml de http://repo.maven.apache.org/maven2 a été mis en cache dans le référentiel local, la résolution ne sera pas jusqu'à ce que l'intervalle essayée à nouveau de mise à jour central est écoulé ou des mises à jour sont forcés. Erreur d' origine: Impossible de transférer les métadonnées org.apache.maven.plugins / maven-metadata.xml de / au centre ( http://repo.maven.apache.org/maven2): Échec de fichier de transfert: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml . Code de retour est: 501, ReasonPhrase: HTTPS requis. [ATTENTION] Le non-transfert org.codehaus.mojo / maven-metadata.xml de http://repo.maven.apache.org/maven2 a été mis en mémoire cache dans le dépôt local, la résolution ne sera pas jusqu'à ce que l'intervalle essayée à nouveau de mise à jour a central ou les mises à jour se sont écoulées sont forcés. Erreur d' origine: Impossible de transférer les métadonnées org.codehaus.mojo / maven-metadata.xml de / au centre ( http://repo.maven.apache.org/maven2 ): Échec de fichier de transfert: http: //repo.maven .apache.org / maven2 / org / Codehaus / Mojo / maven-metadata.xml . Code de retour est: 501, ReasonPhrase: HTTPS requis .

Que dois-je faire? comme vous le voyez, à l'aide de HTTP, je reçois en conséquence HTTP 501.

Giorgi Tsiklauri:

Comme je l'ai passé toute la journée avec cela, je pense que cela vaut la peine de partager l'expérience, les résultats de débogage et de la façon de résoudre ce problème.

Il y avait deux problèmes:

1) [AVERTISSEMENT] Impossible de récupérer le descripteur plugin .. (quel que soit le nom plugin) des avertissements pendant presque toute la phase de construction (nettoyage, emballage ou etc.), qui dit que (important >>) la récupération des plugins descripteurs ou ses dépendances ( ce qui signifie plugins , et non les dépendances du projet !) ne va pas réussir.

La raison de cette (dans ce cas) est que Maven tente de communiquer avec une machine à point final (dépôt) via HTTP (comme vous le voyez dans la citation de question), malgré le fait (!), Que j'ai personnalisé ma configuration .m2\settings.xmlfichier et toutes les entrées de définition du référentiel sont définies par HTTPS , respectivement, semble comme Maven devrait essayer tout via HTTPS ..mais pas, il utilise HTTP pour les plugins, et toute communication HTTP avec les dépôts Maven est interdite depuis le 15 Janvier, 2 020 .

La façon dont je résolus cela est de définir et de configurer <profiles/>et <pluginRepositories/>comme @carlspring suggéré , mais je devais élaborer et développer cette réponse un peu. Donc, voici mon prêt par settings.xmlexemple: (note, que juste pour être sûr, j'ai fourni des dépôts alternatifs dans les deux - profils et dépôts)

<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>

Après cela a été résolu, et enfin maven a pris cette configuration et a commencé à tenter de se connecter à tous les dépôts via HTTPS , j'ai eu un autre - 2ème problème.

2) pairs non authentifiés suivi par le code de retour est la suivante : 501, ReasonPhrase: HTTPS requis.

Ce fut un peu difficile, mais la façon de résoudre est de jouer avec truststore cacertsfichier. Tout d' abord, vérifiez si vous avez truststore fichier cacertset si elle est vide ou non! il ne doit pas être vide , ce qui est très important. On dirait que dans OpenJDK11et d'autres builds dans certaines distributions Windows / Linux, le cacertsfichier est manquant soit vide ou; Cependant, d' après mon observation, il était présent dans OracleJDKconstruit.

  • Sur Windowsconstruit, il devrait être sous %JAVA_HOME%\lib\security\;
  • Sur Linux construit, il peut varier ( en fonction de la distribution Linux et votre configuration), mais dans mon cas, il était sous /etc/ssl/certs(et je pense que ce dossier des certificats de Linux, pas particulièrement son Java).

Si vous voyez (et que vous voyez le plus probable, si vous avez ce poste non authentifié problème) que soit vous n'avez pas le cacertsfichier ou il est vide (simplement vérifier la taille du fichier, il devrait être plus grand que quelques bits), vous pouvez:

  • Copier-coller simplement existant cacertsfichier à partir d' une autre construction Jdk / Jre;
  • Générer un cacertsfichier truststore et ajouter le certificat (s) à (dans ce cas, vous devrez ajouter autant de certificats que vous avez besoin, donc, peut - être qu'il est plus facile d'aller avec juste une pâte copie)

J'espère que ça aide.

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=478685&siteId=1
conseillé
Classement