Maven Repo için Nexus veya Artifactory kullanmalı mıyız?


119

Büyük bir derleme süreci için (> 100 modül) Maven kullanıyoruz. Harici bağımlılıklarımızı kaynak kontrolünde saklıyoruz ve bunu yerel bir depoyu güncellemek için kullanıyoruz.

Bununla birlikte, tüm 3. tarafları proaktif olarak indirmek zorunda kalmamak için merkezi önbelleğe alabilen yerel bir depoya geçiş yapmaya hazırız (ancak yine de çekebileceğimiz yerel bir depoya sahip olabiliriz). Buna ek olarak, geliştiricilerin dünyayı inşa etmek zorunda kalmaması için, dahili yapı eserlerimizi gecelik bir yapıdan yayınlamak istiyoruz.

Nexus ve Artifactory'yi düşünüyoruz. Birini diğerine tercih etmenin sebepleri nelerdir? Düşünmemiz gereken başkaları var mı?


2
Bağlantınız çok objektif değil, işte diğer yan yanıt blogs.jfrog.org/2009/01/contrasting-artifactory-and-nexus.html
user58773

Apache veya nginx gibi düz bir http sunucusu düşünmeniz gerektiğini düşünüyorum. Bunlar "Sıkıcı Teknolojidir" ( mcfunley.com/choose-boring-technology ).
Johan Walles

5
@JohanWalles: Bu bağlamda daha çok "Uygunsuz ve Verimliliği Azaltan Teknoloji" gibi.
Priidu Neemre

Yanıtlar:


74

Artifactory hakkında bilgim yok ama işte Nexus kullanma nedenlerim:

  • Son derece basit kurulum (ve 1.2'den beri, çok basit yükseltme de)
  • Çok iyi web kullanıcı arayüzü
  • Bakımı kolay, neredeyse hiç idari ek yük yok
  • Size en son kurulan, bozuk yapıların ve hataların RSS beslemelerini sağlar
  • Birkaç depoyu gruplayabilir, böylece birkaç kaynağı yansıtabilirsiniz, ancak settings.xml dosyanızda yalnızca bir veya iki girişe ihtiyacınız vardır.
  • Maven'den dağıtım, kutudan çıktığı gibi çalışır (WebDAV hack'lerine, vb. Gerek yoktur).
  • bedava
  • Erişim yollarını yeniden yönlendirebilirsiniz (yani, bazı bozuk pom.xml'ler "xxx" den "abc" gerektirir). POM'a yama uygulamak yerine, Nexus'taki hatayı düzeltebilir ve isteği yapının gerçekte olduğu yere yönlendirebilirsiniz.

3
Nexus, SNAPSHOTS'ı temizleyebilen düzenli zamanlanmış işler oluşturmak için harika bir web kullanıcı arayüzüne sahiptir. Artifactory buna sahip değil (henüz).
HDave

118

Eminim sadece " mvn deploy" ikilileri depolamaktan bahsederseniz her ikisi de iyi olacaktır.

Artifactory'yi yol boyunca tüm yükseltmelerde çok kapsamlı bir şekilde kullanıyoruz. Pek çok proje, çok sayıda anlık görüntü dağıtıldı ve harici depolar vekalet edildi. Tek bir sorun değil. Başkalarının DB'si, indeksleme veya başka herhangi bir şeyle ilgili sorunları nasıl yaşadıklarını açıklamakta zorlanıyorum. Bize hiç böyle bir şey olmadı. Ayrıca Artifactory, verileri bir diskte depolamaya ve yalnızca meta verileri depolamak için bir DB kullanmaya izin verir, oldukça esnektir ( burada daha fazlasını görün ).

Bu uygulamaları çok farklı kılan , diğer derleme araçları ve teknolojileriyle entegrasyona yönelik yaklaşımlarıdır. Nexus ve Sonatype, Maven ve m2eclipse'de oldukça kilitlidir. Başka hiçbir şeyi görmezden geliyorlar ve ancak son zamanlarda kendi tescilli Hudson entegrasyonu üzerinde çalışmaya başladılar ( Maven 3 web seminerlerine bakın ). DÜZENLEME: Bu, 2017 itibariyle artık doğru değil Nexus, diğer derleme araçları için çok daha büyük bir destek veriyor Düzenleme Sonu

Artifactory, harika bir Hudson, TeamCity ve Bamboo entegrasyonu ve Gradle / Ivy desteği sağlar. Dolayısıyla, Nexus, Sonatype "konfor bölgesinden" (Maven, m2eclipse) çıktığınızda size hiçbir şey vermezken, Artifactory tüm önemli yapım araçlarını kucaklar ve bunlarla işbirliği yapar.

Aslında, iş bittiğinde ve " mvn deploy" ile değil, Hudson'dan derleme yapılarını dağıtabilmek büyük bir farktır: Artifactory Hudson eklentisi , yalnızca bir derleme işi başarıyla tamamlandığında, tüm yapıların atomik benzeri bir dağıtımını tek seferde yapar . " mvn deploy" her modülden sonra çalışır ve ortada bir yapı işi başarısız olursa kısmi bir yapı kümesini dağıtabilir. İşin tamamlanmasında bir yapı sunucusundan değil, modül tamamlandığında Maven'den dağıtım yapmak gerçekten kötü bir şeydir.

Gördüğünüz gibi, Artifactory "kutunun dışında" düşünürken Nexus "kutunun içinde" düşünüyor ve yalnızca Maven ve Maven eserlerini önemsiyor.

Artifactory'yi daha erişilebilir kılan bir başka şey de bulut tabanlı Artifactory Online çözümleri . Ayda yaklaşık 80 $ karşılığında kendi Artifactory örneğiniz var, bunun için herhangi bir sunucu ayırmanıza gerek yok.

Artifactory'nin basit ve anlaşılır bir REST API'si vardır , Nexus için nasıl çalıştığını bilmiyorum. Edit Nexus ayrıca kolayca kullanabileceğiniz bir REST API'ye sahiptir.

Özetlemek gerekirse, Maven eserlerinin temel depolanması için her ikisinin de iyi olduğunu düşünüyorum. Ancak Nexus, burada kesinlikle bir "Maven depo yöneticisi" olmasını durdururken, Artifactory, herhangi bir derleme aracı ve CI sunucusundan her türden ikili dosyalar için genel bir "İkili depo" olarak devam eder ve devam eder.


9
Üzgünüm ama burada FUD kokusu alıyorum. Nexus kesinlikle "Maven ve m2eclipse'de kilitli" değildir, Jenkins, TeamCity ve Bamboo ile mükemmel bir şekilde bütünleşir. Basit ve anlaşılır bir REST API'ye sahiptir; her Nexus özelliği bir REST uç noktası olarak gösterilir. Nexus'un "sadece Maven ve Maven eserlerini önemsediğini" söylemek doğru değildir; ayrıca .Net (NuGet), Gradle / Ivy, OSGI'yi destekler ve Yum RPM depolarını barındırabilir. Artefakt depolama açısından, standart java arşiv türleri ile birlikte tar, zip, rar, par dahildir.
RCross

25
Dostum, bu cevap 4 yıl önce gönderildi :) Artık Maven ile ilgili değil mi? Aferin o zaman!
Evgeny Goldin

3
@EvgenyGoldin Yorumunu daha az alakalı yapmıyor (FUD bölümü ^^ hariç).
OddDev

4
Artık bu gönderi yedi yaşında ve REST api'leri araçlarla az çok zorunlu olduğuna göre, Nexus hala bu konuda berbat görünüyor. Nexus3 orada dinlenme API'sinin kullanılması temelde rpc'dir; yapmak istediğiniz şeyi yürütmek için küçük bir komut dosyası yüklemeniz gerekir. Öte yandan yapay, iyi belgelere sahip, iyi düşünülmüş bir API ortaya çıkarıyor gibi görünüyor.
thecoshman

27

Artifactory, hem dosya sistemi hem de veritabanı depolama arka uçlarını destekler. Depolama, sağlama toplamı tabanlıdır ve aynı ikili dosyalar, depoda kaç kez göründüklerine bakılmaksızın yalnızca bir kez depolanır, bu da Artifactory'yi depolama açısından daha verimli hale getirir. Bu mimari nedeniyle taşıma ve kopyalama da çok ucuzdur (Nexus'ta taşıma / kopyalama için REST yoktur - dosya sistemindeki öğeleri taşımanız, ardından içeriğin değiştiğini bildirmek için repo üzerinde düzeltici eylemler gerçekleştirmeniz gerekir).

Diğer bir önemli farklılaştırıcı ise Artifactory'nin, dağıtılan yapılar, çözümlenmiş bağımlılıklar ve derleme çalıştırmalarıyla ilişkili ortam verileri hakkında bilgi toplamak için Hudson ve TeamCity ile benzersiz bir entegrasyona sahip olmasıdır, bu da tam derleme izlenebilirliği sağlar.


1
Artifactory ayrıca S3 kalıcılığını da destekler.
Tim Ferrell

@TimFerrell, doğru değil, ancak genellikle çalıştığım çoğu dükkan için çok pahalı bir fiyata.
Sander Verhagen

21

Artifactory, eserleri bir veritabanında saklar, bu da bir şeyler ters giderse tüm eserlerinizin kaybolacağı anlamına gelir. Nexus, değerli eserleriniz için düz bir dosya kullanır, böylece hepsinin kaybolması konusunda endişelenmenize gerek kalmaz.


3
Bizim için de fark yaratan buydu. Çoğunlukla paranoya olduğunu düşünüyorum, ancak sistemi herhangi bir zamanda incelemenin kolay olacağını bilmek rahatlatıcı.
Jeremy Huiskamp

4
Bu nedenle Artifactory'den Nexus'a geçmeyi planlıyoruz.
Kariem

2
Başka bir yolsuzluk mağdurundan +1; O zamandan beri Archiva ve Nexus'u kullandım ve ikisi de oldukça sağlam görünüyor.
SimonJ

73
Bu cevap güncel değil. Artifactory artık nesneleri dosya sisteminde depolayacak şekilde yapılandırılabilir.
M Dudley

37
Artifactory'yi kullandığım sürece, gerçek eserler için dosya sistemi desteğine sahipti. Ama yine de bir veritabanı kullanıyorum çünkü ana veritabanı sunucumuz kopyalanıyor ve yedekleniyor. Dosya sistemi depolamasının doğal olarak bir veritabanından daha güvenli olduğunu görmüyorum. Nexus'a karşı bir şey yok, sadece bunu düzeltmeye çalışıyorum.
Joshua Davis

9

Her ikisinin de "Pro" özelliklerine ihtiyacınız varsa (örn. Aşama depoları, yapı promosyonu, NuGet), web sitelerinde görüntülenen farklı fiyatlandırma modellerini göz önünde bulundurmanız gerekir.

Özetle:

  • Artifactory Pro
    • sunucu başına ödersiniz
    • artan servis saatleri için daha fazla ödeyebilirsiniz
  • Nexus Pro
    • koltuk başına ödeme yaparsınız , yani yapıları indiren geliştiricilerin sayısı
    • destek hizmeti yalnızca Pazartesi-Cuma 0800-2000 ET arasındadır, ne kadar öderseniz ödeyin

Kaç kullanıcınız olursa olsun, Nexus Pro, Artifactory'nin 7,450 $ / yıl "Gümüş Değer Paketi" ne genel olarak eşdeğer bir destek hizmeti sunar.

Yıllık 7.450 ABD doları size yaklaşık 67 Nexus Pro koltuğu satın alır (1-50 @ 108 ABD doları, geri kalanı 120 ABD doları).

Sadece fiyat ve destek konusunda Nexus Pro, 67 kullanıcıya ulaşana kadar mantıklı geliyor, bu noktada Artifactory daha ucuz seçenek haline geliyor.

Tüm desteği kurum içinde yapıyorsanız; ancak, bu sihirli nokta yaklaşık 23 kullanıcıdır (Artifactory'nin en temel destek teklifi 2.750 $ / yıl'dır).


8

Artifactory 2 ve Nexus 1.3 hakkında son zamanlarda bazı araştırmalar yaptım. Burada bulduğum ana farklılıkları listeleyeceğim:

  • Artifactory, meta verileri ve isteğe bağlı olarak dosyaları DB'de depolar, Nexus doğrudan dosya sistemine yazar. Artıları var. ve eksileri. her yaklaşım için. DB işlemleri desteklerken, FS'de depolanan dosyalara doğrudan erişilebilir.
  • Artifactory, özellikle disk alanı için daha yüksek sistem gereksinimlerine sahiptir.
  • Artifactory, LDAP desteğine sahipken, Nexus'un yalnızca ücretli sürümü vardır. Öte yandan Nexus için ücretsiz LDAP eklentisi Google kodunda mevcuttur.

En eksiksiz karşılaştırma: http://binary-repositories-comparison.github.io/


Aslında Artifactory artık GPL'dir.
Brian Fox

5
Nexus OSS şu anda birkaç sürüm için Ldap desteğine sahiptir.
Brian Fox

1
LDAP grupları için yapay
Steven Magana-Zook

1
Temmuz 2015 Güncellemesi: Codehaus artık öldü, bu nedenle matris binary-repositories-comparison.github.io
JBaruch

7

Artifactory'yi kullanmalısınız En son sürümü gerçek bir sıçramaydı Depolarınızı aşamalı olarak yedekleyebilirsiniz, bu da tüm eserlerinizi kaydedip koruyabileceğiniz anlamına gelir.Kullanımı kolay bir web kullanıcı arayüzüne sahiptir ve kurulumu gerçekten çok kolaydır. yeni 2.0 sürümü çıktı


5

Öğrencilerin bakış açısından, ikisi arasındaki bazı belirli farklılıkları not ediyorum.

  1. Sonatype .war dağıtımı, Tomcat altında çalışmasına rağmen o sırada Jboss uygulama sunucusunda desteklenmemektedir.
  2. Sonatype şu anda bana hızlı bir şekilde ayağa kalkıp test edebileceğim bir Amazon Makine Görüntüsü (AMI) sunmuyor.
  3. Bir Yapay AMI, Bitnami tarafından sağlanır ve ayağa kalkmak için yalnızca birkaç dakika ve yapılandırmak için birkaç dakika daha alır, belki de başarmaya çalıştığınız şeye bağlı olarak birkaç on dakika sürer.
  4. Artifactory, bulutta Artifactory'nin bir SaaS sürümünü sunar, böylece altyapı yerine işleri halletmeye odaklanabilirsiniz.
  5. Nexus ile deneyimim yok ama Artifactory'yi en azından başlangıçta çok sezgisel ve yapılandırması kolay buldum.
  6. Eklendi - Deneyimli bir profesyonel için uygun olabilecek Artifactory Kullanıcı Kılavuzunun, bazı derinlemesine açıklamalar için biraz hafif olduğunu not ediyorum. Örneğin, RedHat'ın Jboss EAP Enterprise Repo'su, başlangıçta biri fermuarını açar ve ardından bir Depo ekler. Her şey yolunda gidiyor ama sonra Artifactory ithal edilen eserleri görüntülemeye çalıştığımda sıfır artefakt rapor ediyor mu? Hata veya uyarı yok, bu yüzden şimdi bir açıklama arıyorum. Bu normal mi yoksa normal değil mi? Doco'daki basit bir açıklama, birini hızlı bir şekilde doğru yöne işaret edebilir. İyi bir katkı sağlayan biri olarak, diğer başlangıçların yararına bu yorumları projeye ekliyorum.

3

Tüm siyaset / din bir yana, lisanslama bazı kuruluşlar için fark yaratır.

Nexus olduğunu GPL şimdi AGPLv3 şimdi ve Eclipse Public License (EPL) .

Artifactory, Apache lisanslı LGPLv3 olup, ürünün 2.1 sürümünden itibaren lisanslıdır.

Sadece karşılaştırma uğruna Archiva'yı da düşünebilirsiniz . Apache 2.0 lisanslıdır.


5
Neden, bu bir trol. Linux'un GPL olması, kuruluşları onu kullanmaktan caydırıyor mu? Bir aracı bir programa dahil etmekle onu kullanmak arasında fark vardır.
Tim O'Brien

1
Trol yapmak istemedim, ama fikrini takdir ediyorum. Metinden üstünlük belirten ifadeleri kaldırdım.
Zac Thompson

4
@tobrien: FWIW, bazı kuruluşlar (benimki dahil) GPL'li yazılımları ne zaman kullandıklarına dair çok dikkatli davranıyorlar ve yasal risklerden korkuyorlar. Böyle bir politikanın bilgeliğini (eksikliğini) tartışmak istemiyorum - tamamen aynı fikirde olacağımızdan şüpheleniyorum. Sadece bazıları için önemli olduğunu söylüyorum.
Zac Thompson

1
2.1 itibariyle, Artifactory zaten LGPL'dir.
Brian Fox

1
@Zac @ user145026 Kodunuzu Nexus kitaplıklarına mı bağlıyorsunuz? Değilse, GPL lisansının neden bir sorun olduğunu anlamıyorum.
Pascal Thivent

2

Artifcatory kullanımı genel olarak sabit kalırken Nexus kullanımının arttığını görüyorum.

görüntü açıklamasını buraya girin

Resim buradan alınmıştır http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/

Matris karşılaştırması da vardır http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix


3
1. Bu resim, yalnızca Maven Central çağrılarına dayandığı için doğru değildir. Maven Central'ın ötesinde indirmeler var. 2. Codehaus öldü, matris binary
repositories

Güzel. Daha iyi bir resmin var mı?
rofrol

Burada bazı sayılar bulabilirsiniz .
JBaruch

1
Nexus'a eğilimli, jfrog'a önyargılı - her iki sayı grubuna da güvenmem.
Kyle Wiering

-2

Hem Artifactory hem de Nexus, aşağı yukarı benzer özellik setine sahiptir, ancak Artifactory'nin LDAP desteği, Nexus'a göre daha çekici hale getirir. Nexus'un da LDAP desteği olmasına rağmen, ancak ücretli sürümde :-(


1
Google kodunda Nexus için açık kaynaklı bir LDAP eklentisi var.
Brian Fox

3
LDAP desteği, 1.5.0'dan beri Nexus'un ücretsiz sürümünde
David Roussel

-2

Hmmm ... yapay ile ilgili deneyimim berbat ... ama ben görece bir acemiyim, bu yüzden biraz tuzla al. Genel şikayetim, yakın zamanda Artifactory'ye yüklenen jar dosyalarının hemen dizine alınmadığı - saatlerce olduğu gibi - ve bunu zorlamanın iyi bir yolu olmadığı. Çalışmaları gerekiyormuş gibi görünen, ancak işe yaramayan çeşitli şeyler denedim. M2eclipse ile çalışıyorum, ant'tan dönüştürdüğüm bir projeye bağımlılıklar ekledim. Yapay olarak yeni eklediğim bir kavanoz eklemeye çalıştığımda, seçicide bir seçenek olarak görünmesini bekliyorum ama öyle olmuyor.

bir iş arkadaşım bana nexus kurduklarını ve şimdiye kadar beğendiklerini söyledi ... ama henüz kefil olamam. BT beni bulur bulmaz bunu bir Linux kutusuna kurmak üzereyim.


3
Sizin durumunuzda - m2eclipse eklentisi tarafından IDE'ler tarafından indirilen ve tüketilen Nexus dizinlerinden bahsediyorsunuz. Bu dizinler düzenli olarak istemcilere indirilir ve her dağıtımda tüketilmeleri amaçlanmamıştır. Yapay, bu dizin güncellemelerini planlamanıza veya zorlamanıza izin verir. Bilginize, Artifactory aramaları (UI / REST) ​​tarafından kullanılan dizinler farklıdır ve yeni yapıların dağıtılmasının bir parçası olarak hemen ve atomik olarak güncellenir. IntelliJ gibi araçlar, Artifactory'nin REST API'sini kullanarak yerel olarak önbelleğe alınmış bir dizin yerine arşivde arama yaparak bundan yararlanır.
Yoav Landman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.