Baru-baru ini Maven membangun pekerjaan yang berjalan di Jenkins gagal dengan pengecualian di bawah ini mengatakan bahwa mereka tidak dapat menarik dependensi dari Maven Central dan harus menggunakan HTTPS . Saya tidak yakin bagaimana mengubah permintaan dari HTTP ke HTTPS . Bisakah seseorang membimbing saya tentang masalah ini?
[GALAT] Ekstensi bangunan yang tidak dapat diselesaikan :
Pluginorg.apache.maven.wagon:wagon-ssh:2.1
atau salah satu dependensinya tidak dapat diselesaikan:
Gagal mengumpulkan dependensi untukorg.apache.maven.wagon:wagon-ssh:jar:2.1 ()
:
Gagal membaca keterangan artefak untukorg.apache.maven.wagon:wagon-ssh:jar:2.1
:
Tidak dapat mentransfer artefakorg.apache.maven.wagon:wagon-ssh:pom:2.1
dari / ke pusat ( http: //repo.maven.apache. org / maven2 ):
Gagal mentransfer file: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Kode pengembalian adalah:501, ReasonPhrase:HTTPS Required. -> [Help 2]
Menunggu Jenkins menyelesaikan pengumpulan
data[ERROR]
Pluginorg.apache.maven.plugins:maven-clean-plugin:2.4.1
atau salah satu dependensinya tidak dapat diatasi:
Gagal membaca keterangan artefak untukorg.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
:
Tidak dapat mentransfer artefakorg.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
dari / ke pusat ( http://repo.maven.apache.org/maven2 ):
Gagal transfer file: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom .
Kode pengembalian adalah:501 , ReasonPhrase:HTTPS Required. -> [Help 1]
sumber
settings.xml
jenkins Anda untuk url pusat mavenJawaban:
Alasan untuk kesalahan yang diamati dijelaskan dalam Central 501 HTTPS Required
Sepertinya versi terbaru dari Maven (dicoba dengan 3.6.0, 3.6.1) sudah menggunakan URL HTTPS secara default.
Berikut adalah tanggal ketika repositori besar akan berganti:
Bangunan Java Anda mungkin rusak mulai 13 Januari (jika Anda belum beralih akses repo ke HTTPS)
Pembaruan: Sepertinya dari maven 3.2.3 maven pusat diakses melalui HTTPS Lihat https://stackoverflow.com/a/25411658/5820670
Maven Change log ( http://maven.apache.org/docs/3.2.3/release-notes.html )
sumber
settings.xml
file (dan upvote, tolong, karena ini adalah solusi yang benar, selain menggunakan Maven yang ditambal).settings.xml
untuk menggunakan repositori HTTPS .. yang dapat, denganwget
, tetapi untuk beberapa alasan yang sangat aneh,mvn archetype:generate -X
(untuk hanya menguji apakah dependensi dapat diunduh) masih mencetaknya mengakses untukDownloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
bantuan, tolong ..?Saya menghadapi masalah yang sama. Ada dua solusi yang saya coba, dan keduanya bekerja dengan baik untuk saya.
Perbarui repositori versi Maven:
Unduh biner Apache Maven yang menyertakan alamat https default ( biner Apache Maven 3.6.3 ). Dan buka jendela dialog Opsi di alat bilah menu NetBeans ( Tampilan Dialog Java Maven ). Dan pilih opsi browse di Maven Home List Box ( Maven Home List Box View ). Setelah menambahkan Apache Maven versi yang baru diunduh ( Diperbarui Maven Home List Box View ), proyek membangun dan berjalan dengan sukses.
Batasi versi Maven saat ini untuk menggunakan tautan HTTPS:
Sertakan kode berikut dalam pom.xml proyek Anda.
sumber
( sumber )
Kami telah membuat perubahan berikut di build.gradle proyek saya:
Tua:
Baru:
sumber
Cobalah untuk menekan URL di bawah ini di browser apa pun. Ini akan mengembalikan 501
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Silakan coba dengan https. Ini akan mengunduh file pom.xml:
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
Silakan tambahkan ( https://repo.maven.apache.org/maven2 ) dalam file setting.xml:
sumber
Perbarui penyimpanan pusat Maven dan gunakan https alih-alih http .
sumber
Saya menggunakan instalasi bersih Maven / Java pada wadah Docker.
Bagi saya, saya harus
cd $M2_HOME/conf
mengeditsettings.xml
file di sana. Tambahkan blok berikut di dalam<mirrors>...</mirrors>
sumber
Saya menggunakan versi lama Maven (3.0.3 dan 3.1). Versi yang lebih lama ini tidak lagi mendukung repositori http (seperti yang disebutkan di atas). Memutakhirkan ke Maven 3.6 adalah perbaikan untuk saya.
sumber
Maven pindah ke HTTPS dan menonaktifkan akses HTTP
Singkatnya, mulai 15 Januari 2020, repositori Maven Central tidak lagi mendukung koneksi HTTP (repositori lain juga melakukan hal yang sama). Oleh karena itu, Anda akan menunjukkan pengaturan Maven / Gradle Anda untuk menggunakan URL HTTPS.
Larutan:
Anda dapat memilih salah satu dari tiga pendekatan berikut.
Tambahkan repositori di
pom.xml
file proyek AndaTambahkan repositori ke dalam profil di
settings.xml
file.Untuk Gradle:
Hanya ganti URL untuk versi HTTPS.
sumber
$M2_HOME
Anda atau Anda$PATH
hanya akan menunjuk ke salah satunya, yang akan menjadi versi pakar default Anda. Saya lebih memilih untuk menghapus yang lebih lama sebelum menginstal yang lebih baru. Tapi, itu tergantung kebutuhan Anda.Saya telah menambahkan segmen kode berikut ke setting.xml dan itu mengatasi masalah,
sumber
Saya memiliki masalah yang sama, tetapi saya menggunakan GitLab bukan Jenkins. Langkah-langkah yang harus saya lakukan untuk mengatasi masalah ini:
Saya menyadari bahwa ini lebih spesifik untuk pengaturan saya. Tetapi tanpa melakukan semua langkah di atas saya masih akan terus mendapatkan pesan kesalahan ini
Return code is: 501 , ReasonPhrase:HTTPS Required
sumber
Seperti yang dinyatakan dalam jawaban lain, https sekarang diperlukan untuk membuat permintaan ke Maven Central, sementara versi Maven yang lebih lama menggunakan http .
Jika Anda tidak ingin / tidak bisa memutakhirkan ke Maven 3.2.3+, Anda dapat melakukan solusi dengan menambahkan kode berikut ke MAVEN_HOME \ conf \ settings.xml ke dalam
<profiles>
bagian:Ini akan selalu menjadi pengaturan aktif kecuali jika Anda menonaktifkan / menimpanya di POM Anda saat diperlukan.
sumber
Untuk semua coders perusahaan, idealnya, jika Anda mendapatkan kesalahan ini, itu berarti bahwa basis kode Anda masih dibangun dari komunitas open-source. Anda perlu menumpang repositori "sentral" bersama manajer repositori Maven perusahaan in-house Anda.
Anda dapat pergi ke settings.xml Anda dan mengganti URL repositori pusat Anda dari http: // ke https: //
Temukan bagian mirror dan tambahkan entri berikut:
Di bagian URL, jika Anda menggunakan http://repo1.maven.org/maven2/ atau http://repo.maven.apache.org/maven2/ maka
Ganti http://repo1.maven.org/maven2/ dengan https://repo1.maven.org/maven2/
Ganti http://repo.maven.apache.org/maven2/ dengan https://repo.maven.apache.org/maven2/
Anda perlu menggunakan URL manajemen / repositori kontrol sumber perusahaan Anda di sini. Karena ini akan memblokir kontak dengan komunitas repositori open source Maven.
Seperti disebutkan dalam jawaban lain, efektif mulai 15 Januari 2020, repositori Maven pusat tidak mendukung komunikasi tidak aman melalui HTTP biasa.
sumber
Bagi saya (corporate coder) juga menambahkan repositori mirror dalam
settings.xml
memperbaiki masalah. Saya juga menggunakan Maven di dalam wadah buruh pelabuhan.sumber
Menggunakan Ubuntu 16.04, java 1.8.0_201.
Saya un-instal maven lama dan menginstal Maven 3.6.3, masih mendapat kesalahan ini bahwa dependensi Maven gagal dengan kesalahan 501.
Menyadari itu bisa menjadi masalah truststore / keystore yang terkait dengan memerlukan https. Ditemukan bahwa Anda sekarang dapat mengkonfigurasi opsi -Djavax menggunakan file jvm.config, lihat: https://maven.apache.org/configure.html .
Karena saya juga menggunakan Tomcat, saya menyalin konfigurasi keystore & truststore dari Tomcat (setenv.sh) ke jvm.config saya dan kemudian berhasil!
Ada juga opsi untuk meneruskan konfigurasi ini di 'ekspor MAVEN_OPTS' (ketika menggunakan mvn menghasilkan) tetapi meskipun ini menghentikan kesalahan 501 itu menciptakan yang lain: itu diharapkan file pom.
Membuat file jvm.config terpisah berfungsi dengan baik, cukup taruh di root proyek Anda.
Semoga ini bisa membantu seseorang, butuh waktu seharian untuk mencari tahu!
sumber
Masalah yang sama juga terjadi untuk jcenter .
Proyek mendapatkan dependensi mereka menggunakan hal yang sama akan mulai menghadapi masalah. Untuk perbaikan cepat lakukan hal berikut di build.gradle Anda
dari pada
Gunakan ini:
sumber
Kesalahan:
Gagal mentransfer file: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Kode pengembalian adalah: 501, ReasonPhrase: Diperlukan HTTPS.
Analisis akar penyebab:
Maven pusat mengharapkan klien menggunakan https, tetapi klien hanya membuat permintaan HTTP saja.
Karenanya, permintaan untuk mengunduh paket bernama 'wagon-ssh-2.1.pom' telah gagal.
Bagaimana cara mengatasi masalah?
Ganti URL " http://repo.maven.apache.org/maven2 "
dengan " https://repo.maven.apache.org/maven2 "
dalam file pom.xml atau file build.gradle dari proyek.
sumber
Membagikan ini jika ada yang membutuhkannya:
Konfigurasi Gradle Lama (tanpa Gitlab, penyebaran Docker, untuk proyek sederhana)
Konfigurasi baru:
Perhatikan https. Selamat coding :)
sumber
Lingkungan saya saat ini tidak mendukung HTTPS, jadi menambahkan versi repo yang tidak aman memecahkan masalah saya: http://insecure.repo1.maven.org sesuai Sonatype
sumber
Tambahkan repositori berikut di pom.xml .
sumber
http