Kami menggunakan Maven untuk proses build besar (> 100 modul). Kami telah menyimpan dependensi eksternal kami di kontrol sumber, dan menggunakannya untuk memperbarui repo lokal.
Namun, kami siap untuk beralih ke repo lokal yang dapat menyimpan cache pusat sehingga kami tidak perlu mengunduh semua pihak ketiga secara proaktif (tetapi kami masih dapat memiliki repo lokal untuk ditarik). Selain itu, kami ingin menerbitkan artefak bangunan internal kami dari bangunan malam sehingga pengembang tidak perlu membangun dunia.
Kami sedang mempertimbangkan Nexus dan Artifactory. Apa alasan untuk memilih salah satu dari yang lain? Apakah ada hal lain yang harus kita pertimbangkan?
maven-2
nexus
artifactory
John Stauffer
sumber
sumber
Jawaban:
Saya tidak tahu tentang Artifactory tetapi berikut adalah alasan saya menggunakan Nexus:
sumber
Saya yakin jika Anda hanya berbicara tentang menyimpan binari dari "
mvn deploy
", keduanya akan baik-baik saja.Kami menggunakan Artifactory dengan sangat ekstensif dengan semua peningkatan di sepanjang jalan. Banyak proyek, banyak snapshot diterapkan dan repositori eksternal diproksikan. Tidak ada satupun masalah. Saya merasa sulit untuk menjelaskan bagaimana orang lain mengalami masalah dengan DB-nya, pengindeksan, atau hal lainnya. Hal seperti itu tidak pernah terjadi pada kami. Selain itu, Artifactory memungkinkan untuk menyimpan data pada disk dan hanya menggunakan DB untuk menyimpan metadata, itu cukup fleksibel ( lihat lebih lanjut di sini ).
Apa yang membuat aplikasi tersebut sangat berbeda adalah pendekatannya terhadap integrasi dengan alat dan teknologi build lainnya.
Nexus dan Sonatype cukup terkunci di Maven dan m2eclipse. Mereka mengabaikan hal lain dan baru-baru ini mulai mengerjakan integrasi Hudson milik mereka sendiri (lihat webinar Maven 3 mereka ).EDIT: Ini tidak berlaku lagi sejak 2017 Nexus memberikan dukungan yang jauh lebih besar untuk alat pembangunan lainnya. Akhir PengeditanArtifactory menyediakan integrasi Hudson, TeamCity dan Bamboo yang mengagumkan , dan Gradle / Ivy dukungan. Jadi, meskipun Nexus tidak memberi Anda apa pun setelah Anda keluar dari "zona nyaman" Sonatype (Maven, m2eclipse), Artifactory merangkul dan berkolaborasi dengan semua alat build utama.
Faktanya, kemampuan untuk menerapkan artefak bangunan dari Hudson, ketika pekerjaan telah selesai, dan bukan oleh "
mvn deploy
" adalah perbedaan besar: Plugin Artifactory Hudson membuat penerapan semua artefak seperti atom sekaligus , hanya jika pekerjaan build selesai dengan sukses. "mvn deploy
" berjalan setelah setiap modul dan dapat menerapkan sebagian set artefak jika pekerjaan pembangunan gagal di tengah. Menerapkan dari Maven saat penyelesaian modul dan bukan dari server versi saat penyelesaian tugas adalah hal yang buruk untuk dilakukan.Seperti yang Anda lihat, Artifactory berpikir "di luar kotak" sementara Nexus berpikir "di dalam kotak" dan hanya peduli tentang artefak Maven dan Maven.
Hal lain yang membuat Artifactory lebih mudah diakses adalah solusi Artifactory Online berbasis cloud mereka . Untuk sekitar $ 80 sebulan Anda memiliki contoh Artifactory Anda sendiri, tidak perlu mendedikasikan server apa pun untuk itu.
Artifactory memiliki REST API yang sederhana dan lugas , tidak tahu cara kerjanya untuk Nexus. Edit Nexus juga memiliki REST API yang dapat Anda gunakan dengan mudah juga.
Untuk meringkas, untuk penyimpanan dasar artefak Maven, saya pikir keduanya baik-baik saja.
Tetapi sementara Nexus berhenti di sana hanya menjadi "manajer repositori Maven", Artifactory terus berlanjut, menjadi "penyimpanan Binari" umum untuk binari apa pun, dari alat build dan server CI apa pun.sumber
Artifactory mendukung kedua file sistem dan backends penyimpanan database. Penyimpanan berbasis checksum dan biner identik disimpan hanya sekali, tidak peduli berapa kali mereka muncul di repo, yang membuat Artifactory lebih efisien dalam penyimpanan. Memindahkan dan menyalin juga sangat murah karena arsitektur ini (di Nexus tidak ada REST untuk dipindahkan / disalin - Anda harus memindahkan barang di sistem file, lalu menjalankan tindakan korektif pada repo untuk memberi tahu bahwa konten telah berubah).
Pembeda penting lainnya adalah Artifactory memiliki integrasi unik dengan Hudson dan TeamCity untuk menangkap informasi tentang artefak yang diterapkan, dependensi yang terselesaikan, dan data lingkungan yang terkait dengan proses build, yang menyediakan keterlacakan build penuh.
sumber
Artifactory menyimpan artefak dalam database, yang berarti jika terjadi kesalahan, semua artefak Anda akan hilang. Nexus menggunakan file datar untuk artefak berharga Anda sehingga Anda tidak perlu khawatir semuanya hilang.
sumber
Jika Anda memerlukan fitur "Pro" dari salah satunya (mis. Repos Staging, promosi artefak, NuGet), maka Anda perlu mempertimbangkan model harga yang berbeda, yang ditampilkan di situs web mereka.
Singkatnya:
Tidak peduli berapa banyak pengguna yang Anda miliki, Nexus Pro menawarkan layanan dukungan yang secara luas setara dengan "Paket Nilai Perak" Artifactory $ 7.450 / tahun.
$ 7.450 / tahun akan membelikan Anda sekitar 67 kursi Nexus Pro (1-50 @ $ 108, sisanya @ $ 120).
Pada harga dan dukungan saja, Nexus Pro masuk akal sampai Anda mendapatkan 67 pengguna, di mana Artifactory menjadi opsi yang lebih murah.
Jika Anda melakukan semua dukungan di rumah; namun, poin ajaib itu adalah sekitar 23 pengguna (penawaran dukungan paling dasar dari Artifactory adalah $ 2.750 / tahun).
sumber
Saya membuat beberapa penelitian baru-baru ini tentang Artifactory 2 dan Nexus 1.3. Saya akan mencantumkan di sini perbedaan utama yang saya temukan:
Perbandingan terlengkap: http://binary-repositories-comparison.github.io/
sumber
Anda harus menggunakan Artifactory Versi terbarunya adalah lompatan nyata Anda dapat mencadangkan secara bertahap repositori Anda, yang berarti Anda dapat memiliki semua artefak Anda disimpan dan dipelihara. Ini memiliki antarmuka web yang mudah digunakan dan sangat mudah diatur Saya sangat menikmatinya keluar versi barunya 2.0
sumber
Dari sudut pandang pelajar, saya mencatat beberapa perbedaan spesifik di antara keduanya.
sumber
Terlepas dari semua politik / agama, perizinan membuat perbedaan bagi beberapa organisasi.
Nexus adalah
GPLsekarangAGPLv3dan sekarang Lisensi Publik Eclipse (EPL) .Artifactory adalah LGPLv3
berlisensi Apachesejak versi 2.1 produk.Anda mungkin juga ingin mempertimbangkan Archiva , hanya untuk perbandingan. Ini berlisensi Apache 2.0.
sumber
Saya melihat bahwa penggunaan Nexus berkembang, sementara penggunaan Artifcatory secara umum tetap datar.
Gambar diambil dari sini http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
Ada juga perbandingan matriks http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
sumber
Baik Artifactory dan Nexus memiliki set fitur yang kurang lebih mirip tetapi dukungan LDAP Artifactory membuatnya lebih menarik dibandingkan Nexus. Meskipun Nexus juga memiliki dukungan LDAP tetapi dalam versi berbayar :-(
sumber
Hmmm ... pengalaman saya dengan artifactory sangat buruk ... tapi saya relatif pemula jadi ambillah dengan sebutir garam. Keluhan saya secara keseluruhan adalah bahwa file jar yang baru-baru ini diunggah ke Artifactory tampaknya tidak langsung diindeks - seperti dalam beberapa jam - dan sepertinya tidak ada cara yang baik untuk memaksanya. Saya telah mencoba berbagai hal yang tampaknya berhasil, tetapi tidak. Saya telah bekerja dengan m2eclipse, menambahkan dependensi ke proyek yang saya ubah dari semut. Ketika saya mencoba menambahkan toples yang baru saja saya tambahkan ke artifactory, saya berharap itu muncul sebagai pilihan di pemilih tetapi ternyata tidak.
seorang rekan kerja memberi tahu saya bahwa mereka telah menginstal nexus dan sejauh ini mereka menyukainya ... tetapi saya belum dapat menjaminnya. Saya akan menginstalnya di komputer Linux segera setelah TI menemukan saya.
sumber