Używamy Mavena do dużego procesu kompilacji (> 100 modułów). Przechowywaliśmy nasze zależności zewnętrzne w kontroli źródła i używaliśmy ich do aktualizowania lokalnego repozytorium.
Jesteśmy jednak gotowi do przejścia do lokalnego repozytorium, które może buforować centralne, więc nie musimy proaktywnie pobierać wszystkich stron trzecich (ale nadal możemy mieć lokalne repozytorium, z którego można pobierać). Ponadto chcemy publikować nasze wewnętrzne artefakty kompilacji z nocnej kompilacji, aby programiści nie musieli budować świata.
Rozważamy Nexus i Artifactory. Jakie są powody preferowania jednego nad drugim? Czy są inne osoby, które powinniśmy rozważyć?
maven-2
nexus
artifactory
John Stauffer
źródło
źródło
Odpowiedzi:
Nie wiem o Artifactory, ale oto moje powody, dla których używam Nexusa:
źródło
Jestem pewien, że jeśli mówisz tylko o przechowywaniu plików binarnych z "
mvn deploy
", oba będą w porządku.Używamy Artifactory bardzo intensywnie ze wszystkimi ulepszeniami po drodze. Wiele projektów, liczne wdrożone migawki i zewnętrzne repozytoria przez proxy. Ani jednego problemu. Trudno mi wyjaśnić, w jaki sposób inni ludzie doświadczają problemów z jego bazą danych, indeksowaniem lub czymkolwiek innym. Nic takiego nam się nigdy nie przytrafiło. Ponadto Artifactory pozwala na przechowywanie danych na dysku i używa tylko bazy danych do przechowywania metadanych, jest dość elastyczny ( zobacz więcej tutaj ).
To, co bardzo różni te aplikacje, to podejście do integracji z innymi narzędziami i technologiami kompilacji.
Nexus i Sonatype są właściwie zablokowane na Maven i m2eclipse. Ignorują wszystko inne i dopiero niedawno zaczęli pracować nad własną, zastrzeżoną integracją Hudson (zobacz ich webinar Maven 3 ).EDYCJA: To już nie jest prawdą, ponieważ od 2017 Nexus zapewnia znacznie większe wsparcie dla innych narzędzi do kompilacji Koniec edycjiArtifactory zapewnia niesamowitą integrację Hudson, TeamCity i Bamboo oraz obsługę Gradle / Ivy . Tak więc, podczas gdy Nexus nic ci nie daje, gdy wyjdziesz z „strefy komfortu” Sonatype (Maven, m2eclipse), Artifactory obejmuje wszystkie główne narzędzia do budowania i współpracuje z nimi.
W rzeczywistości możliwość wdrażania artefaktów kompilacji z Hudson po zakończeniu zadania, a nie przez „
mvn deploy
”, jest ogromną różnicą: wtyczka Artifactory Hudson umożliwia atomowe wdrażanie wszystkich artefaktów naraz , tylko po pomyślnym zakończeniu pracy. „mvn deploy
” jest uruchamiany po każdym module i może wdrożyć częściowy zestaw artefaktów, jeśli zadanie kompilacji nie powiedzie się w środku. Wdrażanie z Mavena po zakończeniu modułu, a nie z serwera kompilacji po zakończeniu zadania, jest naprawdę złą rzeczą.Jak widzisz, Artifactory myśli „poza pudełkiem”, podczas gdy Nexus myśli „wewnątrz pudełka” i dba tylko o artefakty Mavena i Mavena.
Coś jeszcze, co czyni Artifactory bardziej dostępnym, to oparte na chmurze rozwiązanie Artifactory Online . Za około 80 $ miesięcznie masz własną instancję Artifactory, nie musisz dedykować dla niej żadnego serwera.
Artifactory ma prosty i nieskomplikowany interfejs API REST , nie wiem, jak to działa na Nexusie. Edit Nexus ma również REST API , z którego możesz łatwo korzystać.
Podsumowując, do podstawowego przechowywania artefaktów Mavena uważam, że oba są w porządku.
Ale podczas gdy Nexus przestaje istnieć jako „menedżer repozytorium Mavena”, Artifactory działa dalej i działa, będąc ogólnym „magazynem plików binarnych” dowolnego rodzaju, z dowolnego narzędzia do budowania i serwera CI.źródło
Artifactory obsługuje oba plików systemowych i backends przechowywania bazy danych. Przechowywanie jest oparte na sumie kontrolnej, a identyczne pliki binarne są przechowywane tylko raz, bez względu na to, ile razy pojawiają się w repozytorium, co sprawia, że Artifactory jest bardziej wydajny pod względem przechowywania. Przenoszenie i kopiowanie są również bardzo tanie ze względu na tę architekturę (w Nexusie nie ma REST do przenoszenia / kopiowania - musisz przenieść rzeczy w systemie plików, a następnie uruchomić działania naprawcze w repozytorium, aby powiadomić go o zmianie treści).
Innym ważnym wyróżnikiem jest unikalna integracja Artifactory z Hudson i TeamCity w celu przechwytywania informacji o wdrożonych artefaktach, rozwiązanych zależnościach i danych środowiskowych związanych z uruchomieniami kompilacji, co zapewnia pełną identyfikowalność kompilacji.
źródło
Artifactory przechowuje artefakty w bazie danych, co oznacza, że jeśli coś pójdzie nie tak, wszystkie artefakty znikną. Nexus używa płaskiego pliku do przechowywania cennych artefaktów, więc nie musisz się martwić, że wszystkie się zgubią.
źródło
Jeśli potrzebujesz funkcji „Pro” któregokolwiek z nich (np. Repozytorium przejściowe, promocja artefaktów, NuGet), musisz wziąć pod uwagę różne modele cenowe, które są wyświetlane na ich stronach internetowych.
W podsumowaniu:
Bez względu na to, ilu masz użytkowników, Nexus Pro oferuje usługę pomocy technicznej, która jest zasadniczo odpowiednikiem „Silver Value Pack” Artifactory o wartości 7450 USD rocznie.
Za 7450 USD rocznie otrzymasz około 67 miejsc na Nexus Pro (1-50 za 108 USD, reszta za 120 USD).
Jeśli chodzi o samą cenę i wsparcie, Nexus Pro ma sens, dopóki nie dotrzesz do 67 użytkowników, w którym to momencie Artifactory staje się tańszą opcją.
Jeśli całe wsparcie wykonujesz na miejscu; jednak ten magiczny punkt dotyczy około 23 użytkowników (najbardziej podstawowa oferta wsparcia Artifactory to 2750 USD rocznie).
źródło
Niedawno przeprowadziłem badania dotyczące Artifactory 2 i Nexusa 1.3. Wymienię tutaj główne różnice, które znalazłem:
Najbardziej kompletne porównanie: http://binary-repositories-comparison.github.io/
źródło
Powinieneś użyć Artifactory Jego najnowsza wersja była prawdziwym skokiem Możesz tworzyć przyrostowe kopie zapasowe swoich repozytoriów, co oznacza, że możesz zapisywać i konserwować wszystkie swoje artefakty Ma łatwy w użyciu internetowy interfejs użytkownika i jest naprawdę łatwy w konfiguracji Bardzo mi się podobało sprawdź z nową wersją 2.0
źródło
Z punktu widzenia uczących się zauważam pewne szczególne różnice między nimi.
źródło
Odkładając na bok całą politykę / religię, licencje mają znaczenie dla niektórych organizacji.
Nexus to
GPL,terazAGPLv3,a teraz Eclipse Public License (EPL) .Artifactory posiada
licencję ApacheLGPLv3 od wersji 2.1 produktu.Możesz także rozważyć Archivę , dla porównania. Jest na licencji Apache 2.0.
źródło
Widzę, że wykorzystanie Nexusa rośnie, podczas gdy użycie Artifcatory generalnie pozostaje płaskie.
Zdjęcie pochodzi z http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
Istnieje również porównanie macierzy http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
źródło
Zarówno Artifactory, jak i Nexus mają mniej więcej podobny zestaw funkcji, ale obsługa LDAP Artifactory sprawia, że jest bardziej atrakcyjny niż Nexus. Chociaż Nexus również obsługuje LDAP, ale w wersji płatnej :-(
źródło
Hmmm ... moje doświadczenie z artefakturą jest okropne ... ale jestem względnie nowicjuszem, więc traktuj to z przymrużeniem oka. Moja ogólna skarga jest taka, że pliki jar ostatnio przesłane do Artifactory nie wydają się być indeksowane od razu - tak jak przez wiele godzin - i nie wydaje się, aby był dobry sposób, aby to wymusić. Próbowałem różnych rzeczy, które wydawały się działać, ale nie działały. Pracowałem z m2eclipse, dodając zależności do projektu, który konwertuję z ant. Kiedy próbuję dodać słoik, który właśnie dodałem do artefaktora, spodziewam się, że pojawi się jako opcja w selektorze, ale tak się nie dzieje.
współpracownik powiedział mi, że zainstalował Nexusa i jak dotąd im się podoba ... ale nie mogę jeszcze za to ręczyć. Mam zamiar zainstalować to na Linuksie, gdy tylko dział IT będzie w stanie go znaleźć.
źródło