Saya mendapatkan kesalahan saat menerapkan artefak di repositori saya sendiri di server Nexus: "Gagal menerapkan artefak: Tidak dapat mentransfer artefak" "Gagal mentransfer file http: /// my_artifact. Kode yang dikembalikan adalah: 400"
Saya menjalankan Nexus dengan satu repositori khusus my_repo dengan konfigurasi lokal maven berikutnya:
settings.xml
<server>
<id>my_repo</id>
<username>user</username>
<password>pass</password>
</server>
...
<mirror>
<id>my_repo</id>
<name>Repo Mirror</name>
<url><my_url_to_my_repo></url>
<mirrorOf>*</mirrorOf>
</mirror>
- pengguna memiliki izin untuk membuat / membaca / menulis ke my_repo -
pom.xml
<distributionManagement>
<repository>
<id>my_repo</id>
<name>my_repo</name>
<url><my_url_to_my_repo></url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url><my_url_to_my_snapshot_repo></url>
</snapshotRepository>
</distributionManagement>
dan kemudian saya mengeksekusi
mvn deploy
dan dapatkan errornya. Ada ide?
maven
deployment
pom.xml
nexus
acimutal
sumber
sumber
Jawaban:
Beberapa hal yang dapat saya pikirkan:
Periksa itu dan jika Anda masih mengalami masalah, berikan detail lebih lanjut di sini.
sumber
Hanya untuk membuat jawaban terpisah. Jawabannya sebenarnya ada di komentar untuk jawaban yang diterima.
Coba ubah versi artefak Anda untuk mengakhirinya
-SNAPSHOT
.sumber
400 Permintaan Buruk akan dikembalikan jika Anda mencoba untuk:
sumber
Penyebab masalah bagi saya adalah -source.jars diunggah dua kali (dengan maven-source-plugin) sebagaimana disebutkan sebagai salah satu penyebab dalam jawaban yang diterima. Mengarahkan ke jawaban yang saya rujuk: Plugin rilis Maven gagal: artefak sumber diterapkan dua kali
sumber
Saya mengalami masalah yang sama persis hari ini dan masalahnya adalah versi yang saya coba rilis: perform sudah ada di repo Nexus.
Dalam kasus saya, ini kemungkinan karena jaringan terputus selama permintaan rilis sebelumnya: lakukan. Meskipun saya kehilangan koneksi, tampaknya rilis berhasil.
sumber
Dalam kasus yang jarang terjadi ketika Anda perlu menerapkan ulang artefak STABIL YANG SAMA ke Nexus, ini akan gagal secara default. Jika Anda kemudian menghapus artefak dari Nexus (melalui antarmuka web) untuk tujuan menerapkannya lagi, penerapan masih akan gagal, karena hanya menghapus misalnya jar atau pom tidak menghapus file lain yang masih ada di direktori. Anda harus masuk ke kotak dan menghapus direktori secara keseluruhan.
sumber
content/vol-{01-43}/chap-{01-47}
Saya mengalami masalah yang sama hari ini dengan penambahan "Kode pengembalian: 400, ReasonPhrase: Permintaan Buruk". yang ternyata masalah "artefak sudah diterapkan dengan versi itu jika itu adalah rilis" masalah dari jawaban di atas masukkan deskripsi tautan di sini
Satu solusi yang belum disebutkan adalah mengonfigurasi Nexus untuk memungkinkan penerapan ulang ke dalam repositori Rilis. Mungkin bukan praktik terbaik, karena ini disetel karena suatu alasan, Anda tetap dapat membuka "Access Settings" di "Configuration" -Tab repositori Nexus dan menyetel "Deployment Policy" ke "Allow Redeploy".
sumber
contoh: 0.0.1-SNAPSHOT
sumber
Pastikan bahwa belum ada (artefak dan versi) di nexus (sebagai rilis). Dalam hal itu, kembalikan Permintaan Buruk.
sumber
Untuk 400 error, periksa repositori "Deployment policy" biasanya "Disable redeploy". Sebagian besar versi perpustakaan Anda sudah ada, itulah sebabnya Anda menerima pesan "Tidak dapat PUT meletakkan ' https: //yoururl/some.jar '. Menerima kode status 400 dari server: Repositori tidak mengizinkan pembaruan aset:" milik Anda nama repositori "
Jadi, Anda memiliki beberapa opsi untuk mengatasi ini. 1- Izinkan penerapan ulang 2- hapus versi dari repositori Anda yang Anda coba unggah 3- ubah nomor versi
sumber
Jika salah satu jawaban di atas berhasil, Anda dapat membuat artefak baru langsung dari sisi admin (NEXUS Screen shot terlampir di bawah).
Login to nexus
UI http: // YOUR_URL: 8081 / nexus (nama pengguna: sandi default admin : admin123 )Click repositories
disebelah kiri lalu klik repo, Misal: klik release.artifact Upload
(tab terakhir).GAV definition
sebagaiGAV Param
- Kemudian masukkan groupid, id artefak dan versinya.Sekarang Anda akan dapat menambahkan penyesuaian dalam proyek Anda. (Tangkapan layar di bawah)
sumber
Ini juga dapat terjadi jika Anda memiliki kebijakan penamaan seputar versi, yang melarang versi # yang Anda coba terapkan. Dalam kasus saya, saya mencoba mengunggah versi (untuk merilis repo)
2.0.1
tetapi kemudian menemukan bahwa konfigurasi nexus kami tidak mengizinkan apa pun selain bilangan bulat untuk rilis.Saya mencoba nanti dengan versi
2
dan berhasil menerapkannya.Pesan kesalahan pasti tidak membantu:
Pesan yang lebih baik bisa saja
version 2.0.1 violates naming policy
sumber
Id server harus cocok dengan id repositori maven settings.xml
sumber