2013-05-10 6 views
6

Podczas badania narzędzi CI odkryłem, że wiele instalacji CI również integruje się z repozytoriami artefaktów, takich jak SonaType Nexus i JFrog Artifactory.Jaki jest cel Artifactory lub Nexus i jak mogę ich użyć?

Te narzędzia są bardzo zintegrowane z Maven. Nie używamy Mavena, ani nie kompilujemy Javy nawet. Kompilujemy C++ za pomocą Qt/qmake/make, a ta kompilacja działa bardzo dobrze dla nas. Wciąż badamy narzędzia CI.

Jaki jest sens korzystania z repozytorium artefakt?

Czy archiwizacji do Nexusa lub Artifactory (lub Archiva) ma być krokiem w naszej make sieci lub części sieci CI, czy to może być?

Jak mogę sprawić, by nasz „make” buduje lub Perl/Bash/skrypty wsadowe interakcji z nimi?

+0

@Słak, dlaczego to prawda? Jakie są osiągnięcia dla programistów Java? – macetw

+1

@SLaks To jest poppycock. Menedżer repozytorium binarnego jest dobry dla wszystkich programistów, którzy produkują lub zużywają pliki binarne; czy to JAR, WAR, Debs, RPM, DLL itp. – noamt

+0

Możesz znaleźć ten link jako pomocny: http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix – sorin

Odpowiedz

9

Repozytorium artefaktów ma kilka celów. Głównym celem jest posiadanie kopii maven centralnego (lub dowolnego innego repozytorium maven), aby mieć szybsze czasy pobierania i możesz użyć programu maven, nawet jeśli internet jest wyłączony. Ponieważ nie używasz maven, nie ma to dla ciebie znaczenia.

Drugim celem jest, aby zapisać w nim pliki, które chcesz użyć jako uzależnienia, ale nie można pobrać swobodnie z internetu. Kupujesz je lub kupujesz od swoich dostawców i umieszczasz je w repozytorium. Jest to również bardziej odpowiednie dla mechanizmu użytkownika i jego mechanizmu zależności.

Trzecim ważnym celem jest mieć centralną drogę w którym można przechowywać swoje komunikaty. Więc jeśli stworzysz wersję v1.0, możesz przesłać ją do takiego repozytorium iz czystym sposobem nazywania w maven, łatwo jest dowiedzieć się, jak znaleźć v1.0 i używać go z wszystkimi innymi narzędziami. Możesz napisać skrypt, który ściągnie twoje wydanie za pomocą wget i zainstaluje go na hoście.

Większość czasu te repo mają sposób procesu przemieszczania. Więc możesz przechowywać v1.0 w repo w inscenizacji. Ktoś robi test, a kiedy jest w porządku, promuje go do repozytorium, każdy może je znaleźć i wykorzystać.

Łatwo zintegrować je z projektami Maven i wiele innych narzędzi do budowy narzędzi ma łatwą możliwość połączenia się z nim jak bluszcz, groovy winogron i tak dalej. Ze względu na schemat nazewnictwa nie ma ograniczeń, że używasz basha lub perla do pobierania/wysyłania z niego plików.

Więc jeśli masz wydania lub pliki, które powinny być współdzielone pomiędzy projektami i nie masz dobrego rozwiązania, repozytorium artefaktów może być dobrym punktem wyjścia, aby zobaczyć, jak to może działać.

+1

Zarówno Artifactory, jak i Nexus obsługuje pliki binarne Java jako pliki binarne .NET oraz Debs i RPM – noamt

+0

Naprawdę nie zgadzam się z twierdzeniem "Ale są one zaprojektowane tak, aby działały najlepiej z projektami Maven i potrzebami zależności Mavena". Chociaż jest to prawdą w przypadku Nexusa, Artifactory naprawdę buduje narzędzie i agnostykę, i doskonale współpracuje z prawie każdym narzędziem do budowania i budowania serwera, pozwalając użytkownikowi kontrolować układ artefaktów. Posiada również wbudowane funkcje dla Gradle, Ivy, P2, .NET, RPM, itp. – JBaruch

+0

Zmieniłem trochę tekst, aby było bardziej zrozumiałe, że można z nich korzystać prawie we wszystkim i że wiele narzędzi zintegrowało połączenie z repozytorium artefaktów. Klement został oparty na fakcie, że większość narzędzi nie czyta pliku settings.xml z maven i potrzebuje specjalnego pliku ustawień, aby połączyć się z repo.Jest to jednak nieistotne, ponieważ maven nie jest w ogóle używany w pytaniu, a dla bash/perl konfiguracja musi zostać wykonana. Więc usunąłem to. – mszalbach