Récemment, les travaux de build Maven exécutés dans Jenkins échouent, à l'exception ci-dessous, disant qu'ils ne pouvaient pas extraire les dépendances de Maven Central et devraient utiliser HTTPS . Je ne sais pas comment changer les demandes de HTTP en HTTPS . Quelqu'un pourrait-il me guider à ce sujet?
[ERREUR] Extension de construction insoluble: le
plug- inorg.apache.maven.wagon:wagon-ssh:2.1
ou l'une de ses dépendances n'a pas pu être résolu:
Impossible de collecter les dépendances pourorg.apache.maven.wagon:wagon-ssh:jar:2.1 ()
:
Impossible de lire le descripteur d'artefact pourorg.apache.maven.wagon:wagon-ssh:jar:2.1
:
Impossible de transférer l'artefactorg.apache.maven.wagon:wagon-ssh:pom:2.1
de / vers le central ( http: //repo.maven.apache. org / maven2 ):
Impossible de transférer le fichier: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Le code retour est:501, ReasonPhrase:HTTPS Required. -> [Help 2]
L'attente de Jenkins pour terminer la collecte du
data[ERROR]
plugorg.apache.maven.plugins:maven-clean-plugin:2.4.1
- in ou de l'une de ses dépendances n'a pas pu être résolue:
impossible de lire le descripteur d'artefact pourorg.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
:
impossible de transférer l'artefactorg.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
de / vers le central ( http://repo.maven.apache.org/maven2 ):
échec de fichier de transfert: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom .
Le code retour est:501 , ReasonPhrase:HTTPS Required. -> [Help 1]
la source
settings.xml
en jenkins pour l'url centraleRéponses:
La raison de l'erreur observée est expliquée dans Central 501 HTTPS Required
Il semble que les dernières versions de Maven (essayées avec 3.6.0, 3.6.1) utilisent déjà l'URL HTTPS par défaut.
Voici les dates de basculement des principaux référentiels:
Vos builds Java pourraient s'arrêter à partir du 13 janvier (si vous n'avez pas encore changé l'accès repo en HTTPS)
Mise à jour: il semble que depuis maven 3.2.3 maven central est accessible via HTTPS Voir https://stackoverflow.com/a/25411658/5820670
Journal des modifications Maven ( http://maven.apache.org/docs/3.2.3/release-notes.html )
la source
settings.xml
fichier (et votez-les, s'il vous plaît, car c'est la bonne solution, à l'exception de l'utilisation d'un Maven patché).settings.xml
pour utiliser les référentiels HTTPS .. avec lesquels il peut,wget
mais pour une raison très étrange,mvn archetype:generate -X
(pour simplement tester si les dépendances peuvent être téléchargées), il imprime toujours qu'il accède àDownloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
n'importe quelle aide, s'il vous plaît ..?Je fais face au même problème. Il y a deux solutions que j'ai essayées, et les deux fonctionnent bien pour moi.
Mettez à jour le référentiel de versions de Maven:
Téléchargez le binaire Apache Maven qui inclut les adresses https par défaut ( binaire Apache Maven 3.6.3 ). Et ouvrez la fenêtre de dialogue Options dans les outils de la barre de menus de NetBeans ( Java Maven Dialog View ). Et sélectionnez l'option de navigation dans Maven Home List Box ( Maven Home List Box View ). Après avoir ajouté la version nouvellement téléchargée d'Apache Maven (vue de zone de liste d'accueil Maven mise à jour ), le projet se construit et s'exécute avec succès.
Limitez la version actuelle de Maven à l'utilisation des liens HTTPS:
Incluez le code suivant dans pom.xml de votre projet.
la source
( source )
Nous avons apporté les modifications suivantes dans build.gradle de mon projet:
Vieux:
Nouveau:
la source
Essayez d'appuyer sur l'URL ci-dessous dans n'importe quel navigateur. Il retournera 501
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Veuillez essayer avec https. Il téléchargera un fichier pom.xml:
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Veuillez l'ajouter ( https://repo.maven.apache.org/maven2 ) dans le fichier setting.xml:
la source
Mettez à jour le référentiel central de Maven et utilisez https au lieu de http .
la source
J'utilisais une nouvelle installation de Maven / Java sur un conteneur Docker.
Pour moi, je devais
cd $M2_HOME/conf
et éditer lesettings.xml
fichier là-bas. Ajoutez le bloc suivant à l'intérieur<mirrors>...</mirrors>
la source
J'utilisais une version obsolète de Maven (3.0.3 et 3.1). Ces anciennes versions ne prennent plus en charge les référentiels http (comme mentionné ci-dessus). La mise à niveau vers Maven 3.6 était la solution pour moi.
la source
Maven passe au HTTPS et désactive l'accès HTTP
Pour résumer, à partir du 15 janvier 2020, le référentiel Maven Central ne prend plus en charge les connexions HTTP (les autres référentiels font de même). Par conséquent, vous indiquerez vos paramètres Maven / Gradle pour utiliser une URL HTTPS.
Solution:
Vous pouvez choisir l'une des trois approches suivantes.
Ajoutez un référentiel dans le
pom.xml
fichier de votre projetAjoutez le référentiel dans un profil du
settings.xml
fichier.Pour Gradle:
Remplacez uniquement l'URL de la version HTTPS.
la source
$M2_HOME
ou vos$PATH
variables env pointeront uniquement vers l'une d'entre elles, qui sera votre version maven par défaut. Je préférerais désinstaller l'ancien avant d'installer un plus récent. Mais cela dépend de vos besoins.J'ai été ajouté à la suite du segment de code à setting.xml et le problème a été résolu,
la source
J'ai le même problème, mais j'utilise GitLab au lieu de Jenkins. Les étapes que j'ai dû faire pour surmonter le problème:
Je me rends compte que c'est plus spécifique à ma configuration. Mais sans faire toutes les étapes ci-dessus, je continuerais à recevoir ce message d'erreur
Return code is: 501 , ReasonPhrase:HTTPS Required
la source
Comme indiqué dans d'autres réponses, https est désormais requis pour faire des demandes à Maven Central, tandis que les anciennes versions de Maven utilisent http .
Si vous ne souhaitez pas / ne pouvez pas mettre à niveau vers Maven 3.2.3+, vous pouvez contourner ce problème en ajoutant le code suivant dans votre MAVEN_HOME \ conf \ settings.xml dans la
<profiles>
section:Ce sera toujours un paramètre actif, sauf si vous le désactivez / remplacez-le dans votre POM si nécessaire.
la source
Pour tous les codeurs d'entreprise, idéalement, si vous obtenez cette erreur, cela signifie que votre base de code est toujours en cours de construction à partir d'une communauté open-source. Vous devez passer outre le référentiel «central» avec votre gestionnaire de référentiel Maven interne.
Vous pouvez accéder à votre fichier settings.xml et remplacer l'URL de votre référentiel central de http: // à https: //
Recherchez les sections miroirs et ajoutez l'entrée suivante:
Dans la section URL, si vous utilisiez http://repo1.maven.org/maven2/ ou http://repo.maven.apache.org/maven2/ alors
Remplacez http://repo1.maven.org/maven2/ par https://repo1.maven.org/maven2/
Remplacez http://repo.maven.apache.org/maven2/ par https://repo.maven.apache.org/maven2/
Vous devez idéalement utiliser l'URL de gestion / référentiel du contrôle des sources de votre entreprise ici. Comme cela bloquera tout contact avec la communauté de référentiels Maven open source.
Comme mentionné dans d'autres réponses, à compter du 15 janvier 2020, le référentiel central Maven ne prend pas en charge les communications non sécurisées via HTTP standard.
la source
Pour moi (codeur d'entreprise), j'ai également ajouté un référentiel miroir dans
settings.xml
le problème résolu. J'utilise également Maven dans un conteneur docker.la source
En utilisant Ubuntu 16.04, java 1.8.0_201.
J'ai désinstallé l'ancien maven et installé Maven 3.6.3, j'ai toujours cette erreur que les dépendances Maven échouent avec une erreur 501.
Réalisé, il pourrait s'agir d'un problème de magasin de clés / clés associé à la nécessité de https. Trouvé que vous pouvez maintenant configurer les options -Djavax en utilisant un fichier jvm.config, voir: https://maven.apache.org/configure.html .
Comme j'utilise également Tomcat, j'ai copié la configuration du magasin de clés et du magasin de confiance de Tomcat (setenv.sh) dans mon jvm.config, puis cela a fonctionné!
Il y a aussi une option pour passer cette config dans 'export MAVEN_OPTS' (lors de l'utilisation de mvn generate) mais bien que cela ait arrêté l'erreur 501, il en a créé une autre: il attendait un fichier pom.
La création d'un fichier jvm.config distinct fonctionne parfaitement, il suffit de le placer à la racine de votre projet.
J'espère que cela aide quelqu'un, m'a pris toute la journée pour le comprendre!
la source
Le même problème se produit également pour jcenter .
Les projets obtenant leurs dépendances en utilisant les mêmes commenceront à faire face à des problèmes. Pour des solutions rapides, procédez comme suit dans votre build.gradle
au lieu de
utilisez ceci:
la source
L'erreur:
Impossible de transférer le fichier: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Le code retour est: 501, ReasonPhrase: HTTPS Obligatoire.
Analyse de la cause originelle:
Maven central s'attend à ce que les clients utilisent https, mais le client effectue uniquement une requête HTTP simple.
Par conséquent, la demande de téléchargement du package nommé «wagon-ssh-2.1.pom» a échoué.
Comment resoudre le probleme?
Remplacez l'URL " http://repo.maven.apache.org/maven2 "
avec " https://repo.maven.apache.org/maven2 "
dans le fichier pom.xml ou le fichier build.gradle du projet.
la source
Partager cela au cas où quelqu'un en aurait besoin:
Configuration Old Gradle (sans Gitlab, déploiements Docker, pour des projets simples)
Nouvelle configuration:
Remarquez le https. Bon codage :)
la source
Mon environnement actuel ne prend pas en charge HTTPS, donc l'ajout de la version non sécurisée du dépôt a résolu mon problème: http://insecure.repo1.maven.org selon Sonatype
la source
Ajoutez le référentiel suivant dans pom.xml .
la source
http