Kürzlich sind in Jenkins ausgeführte Maven- Build-Jobs mit der folgenden Ausnahme fehlgeschlagen, dass sie keine Abhängigkeiten von Maven Central abrufen konnten und HTTPS verwenden sollten . Ich bin nicht sicher, wie ich die Anforderungen von HTTP zu HTTPS ändern soll . Könnte mich jemand in dieser Angelegenheit führen?
[FEHLER] Nicht auflösbare Build-Erweiterung:
Pluginorg.apache.maven.wagon:wagon-ssh:2.1
oder eine seiner Abhängigkeiten konnte nicht behoben werden:
Fehler beim Sammeln von Abhängigkeiten fürorg.apache.maven.wagon:wagon-ssh:jar:2.1 ()
:
Fehler beim Lesen des Artefaktdeskriptors fürorg.apache.maven.wagon:wagon-ssh:jar:2.1
: Das
Artefakt konnte nichtorg.apache.maven.wagon:wagon-ssh:pom:2.1
von / nach zentral übertragen werden ( http: //repo.maven.apache). org / maven2 ):
Datei konnte nicht übertragen werden: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Der Rückkehrcode lautet:501, ReasonPhrase:HTTPS Required. -> [Help 2]
Das Warten, bis Jenkins das Sammeln des
data[ERROR]
Pluginsorg.apache.maven.plugins:maven-clean-plugin:2.4.1
oder einer seiner Abhängigkeiten abgeschlossen hat, konnte nicht behoben werden:
Fehler beim Lesen des Artefaktdeskriptors fürorg.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
:
Artefakt konnte nichtorg.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
von / nach zentral übertragen werden ( http://repo.maven.apache.org/maven2 ):
Fehler beim Übertragungsdatei: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom .
Der Rückkehrcode lautet:501 , ReasonPhrase:HTTPS Required. -> [Help 1]
quelle
settings.xml
in Jenkins für die Maven Central URLAntworten:
Der Grund für den beobachteten Fehler wird in Central 501 HTTPS Required erläutert
Es sieht so aus, als würden die neuesten Versionen von Maven (versucht mit 3.6.0, 3.6.1) bereits standardmäßig die HTTPS-URL verwenden.
Hier sind die Daten, an denen die Hauptrepositorys wechseln:
Ihre Java-Builds werden möglicherweise ab dem 13. Januar unterbrochen (wenn Sie den Repo-Zugriff noch nicht auf HTTPS umgestellt haben).
Update: Es scheint, als würde von maven 3.2.3 auf maven central über HTTPS zugegriffen. Siehe https://stackoverflow.com/a/25411658/5820670
Maven-Änderungsprotokoll ( http://maven.apache.org/docs/3.2.3/release-notes.html )
quelle
settings.xml
Datei zu aktualisieren (und stimmen Sie sie bitte ab, da dies die richtige Lösung ist, außer die Verwendung eines gepatchten Maven).settings.xml
Verwendung von HTTPS-Repositorys konfiguriert. Womit es möglich istwget
, aber aus einem sehr seltsamen Grundmvn archetype:generate -X
(um nur zu testen, ob Abhängigkeiten heruntergeladen werden können), wird immer noch gedruckt, auf welcheDownloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
Hilfe zugegriffen wird.Ich stehe vor dem gleichen Problem. Es gibt zwei Lösungen, die ich ausprobiert habe, und beide funktionieren gut für mich.
Aktualisieren Sie das Maven-Versions-Repository:
Laden Sie die Apache Maven-Binärdatei herunter, die die Standard-https-Adressen enthält ( Apache Maven 3.6.3-Binärdatei ). Öffnen Sie das Dialogfeld Optionen in den Tools der NetBeans-Menüleiste ( Java Maven- Dialogansicht ). Wählen Sie im Maven Home List Box ( Ansicht des Maven Home List Box ) die Option Durchsuchen . Nach dem Hinzufügen der neu heruntergeladenen Apache Maven-Version ( aktualisierte Maven Home List Box-Ansicht ) wird das Projekt erfolgreich erstellt und ausgeführt.
Beschränken Sie die aktuelle Maven-Version auf die Verwendung von HTTPS-Links:
Fügen Sie den folgenden Code in die Datei pom.xml Ihres Projekts ein.
quelle
( Quelle )
Wir haben die folgenden Änderungen in build.gradle meines Projekts vorgenommen:
Alt:
Neu:
quelle
Versuchen Sie, die unten stehende URL in einem beliebigen Browser zu drücken. Es wird 501 zurückgeben
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Bitte versuchen Sie es mit https. Es wird eine pom.xml-Datei heruntergeladen:
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Bitte fügen Sie es ( https://repo.maven.apache.org/maven2 ) in die Datei settings.xml ein:
quelle
Aktualisieren Sie das zentrale Repository von Maven und verwenden Sie https anstelle von http .
quelle
Ich habe eine Neuinstallation von Maven / Java auf einem Docker-Container verwendet.
Für mich musste ich
cd $M2_HOME/conf
diesettings.xml
Datei dort bearbeiten . Fügen Sie den folgenden Block hinzu<mirrors>...</mirrors>
quelle
Ich habe eine veraltete Version von Maven (3.0.3 und 3.1) verwendet. Diese älteren Versionen unterstützen keine http-Repositorys mehr (wie oben erwähnt). Ein Upgrade auf Maven 3.6 war für mich das Problem.
quelle
Maven wechselt zu HTTPS und deaktiviert den HTTP-Zugriff
Kurzgeschichte: Ab dem 15. Januar 2020 unterstützt das Maven Central-Repository keine HTTP-Verbindungen mehr (andere Repositorys tun dasselbe). Daher geben Sie Ihre Maven / Gradle-Einstellungen an, um eine HTTPS-URL zu verwenden.
Lösung:
Sie können einen der folgenden drei Ansätze wählen.
Fügen Sie ein Repository in die
pom.xml
Datei Ihres Projekts einFügen Sie das Repository einem Profil in der
settings.xml
Datei hinzu.Für Gradle:
Ersetzen Sie nur die URL für die HTTPS-Version.
quelle
$M2_HOME
oder Ihre$PATH
env-Variablen verweisen jedoch nur auf eine von ihnen. Dies ist Ihre Standard-Maven-Version. Ich würde es vorziehen, die ältere zu deinstallieren, bevor ich eine neuere installiere. Das hängt jedoch von Ihren Bedürfnissen ab.Ich wurde folgendes Codesegment zu settings.xml hinzugefügt und das Problem wurde behoben.
quelle
Ich habe das gleiche Problem, aber ich verwende GitLab anstelle von Jenkins. Die Schritte, die ich tun musste, um das Problem zu lösen:
Mir ist klar, dass dies spezifischer für mein Setup ist. Aber ohne alle oben genannten Schritte würde ich weiterhin diese Fehlermeldung erhalten
Return code is: 501 , ReasonPhrase:HTTPS Required
quelle
Wie in anderen Antworten angegeben, muss https jetzt Anforderungen an Maven Central stellen, während ältere Versionen von Maven http verwenden .
Wenn Sie nicht auf Maven 3.2.3+ aktualisieren möchten / können, können Sie eine Problemumgehung durchführen, indem Sie den folgenden Code in Ihre MAVEN_HOME \ conf \ settings.xml im
<profiles>
Abschnitt einfügen :Dies ist immer eine aktive Einstellung, es sei denn, Sie deaktivieren / überschreiben sie bei Bedarf in Ihrem POM.
quelle
Wenn Sie für alle Unternehmenscodierer diesen Fehler erhalten, bedeutet dies im Idealfall, dass Ihre Codebasis immer noch aus einer Open-Source-Community erstellt wird. Sie müssen das "zentrale" Repository mit Ihrem internen Maven-Repository-Manager überschreiben.
Sie können zu Ihrer settings.xml gehen und Ihre zentrale Repository-URL von http: // nach https: // überschreiben
Suchen Sie die Spiegelabschnitte und fügen Sie den folgenden Eintrag hinzu:
Wenn Sie im URL-Bereich entweder http://repo1.maven.org/maven2/ oder http://repo.maven.apache.org/maven2/ verwendet haben dann
Ersetzen Sie http://repo1.maven.org/maven2/ durch https://repo1.maven.org/maven2/
Ersetzen Sie http://repo.maven.apache.org/maven2/ durch https://repo.maven.apache.org/maven2/
Idealerweise müssen Sie hier die URL Ihres Unternehmens für die Quellcodeverwaltung / das Repository verwenden. Da dies jeden Kontakt mit der Open Source Maven Repository Community blockiert.
Wie in anderen Antworten erwähnt, unterstützt das zentrale Maven-Repository ab dem 15. Januar 2020 keine unsichere Kommunikation über einfaches HTTP.
quelle
Für mich (Corporate Coder) hat
settings.xml
das Problem auch durch Hinzufügen eines Spiegel-Repositorys behoben. Ich benutze Maven auch in einem Docker-Container.quelle
Verwenden von Ubuntu 16.04, Java 1.8.0_201.
Ich habe den alten Maven deinstalliert und Maven 3.6.3 installiert. Ich habe immer noch den Fehler erhalten, dass Maven-Abhängigkeiten mit einem 501-Fehler fehlschlagen.
Es wurde erkannt, dass es sich möglicherweise um ein Truststore- / Keystore-Problem handelt, das mit der Anforderung von https verbunden ist. Es wurde festgestellt, dass Sie jetzt -Djavax-Optionen mithilfe einer jvm.config-Datei konfigurieren können, siehe: https://maven.apache.org/configure.html .
Da ich auch Tomcat verwende, habe ich die Keystore- und Truststore-Konfiguration von Tomcat (setenv.sh) in meine jvm.config kopiert und dann hat es funktioniert!
Es gibt auch eine Option, um diese Konfiguration in 'export MAVEN_OPTS' zu übergeben (bei Verwendung von mvn generate), aber obwohl dies den 501-Fehler stoppte, wurde ein anderer erstellt: Es wurde eine POM-Datei erwartet.
Das Erstellen einer separaten jvm.config-Datei funktioniert einwandfrei. Legen Sie sie einfach im Stammverzeichnis Ihres Projekts ab.
Hoffentlich hilft das jemandem, ich habe den ganzen Tag gebraucht, um es herauszufinden!
quelle
Das gleiche Problem tritt auch bei jcenter auf .
Projekte, deren Abhängigkeiten dieselbe verwenden, werden Probleme haben. Führen Sie für schnelle Korrekturen die folgenden Schritte in Ihrem build.gradle aus
anstatt
benutze das:
quelle
Der Fehler:
Datei konnte nicht übertragen werden: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Der Rückkehrcode lautet: 501, ReasonPhrase: HTTPS Erforderlich.
Ursachenanalyse:
Maven Central erwartet, dass die Clients https verwenden, aber der Client stellt nur eine einfache HTTP-Anfrage.
Daher war die Anforderung zum Herunterladen des Pakets mit dem Namen "wagon-ssh-2.1.pom" fehlgeschlagen.
Wie behebe ich das Problem?
Ersetzen Sie die URL " http://repo.maven.apache.org/maven2 ".
mit " https://repo.maven.apache.org/maven2 "
in der Datei pom.xml oder der Datei build.gradle des Projekts.
quelle
Teilen Sie dies für den Fall, dass jemand es benötigt:
Alte Gradle-Konfiguration (ohne Gitlab, Docker-Bereitstellungen, für einfache Projekte)
Neue Konfiguration:
Beachten Sie die https. Viel Spaß beim Codieren :)
quelle
Meine aktuelle Umgebung unterstützt HTTPS nicht. Das Hinzufügen der unsicheren Version des Repos hat mein Problem gelöst: http://insecure.repo1.maven.org gemäß Sonatype
quelle
Fügen Sie das folgende Repository in pom.xml hinzu .
quelle
http