2013-05-10 28 views
6

Durante gli studi sugli strumenti della CI, ho scoperto che molte installazioni di CI si integrano anche con repository di oggetti come SonaType Nexus e JFrog Artifactory.Qual è il punto di Artifactory o Nexus e come potrei usarli?

Questi strumenti sono altamente integrati in Maven. Non usiamo Maven, né compiliamo Java nemmeno. Compiliamo C++ usando Qt/qmake/make e questa build funziona davvero bene per noi. Stiamo ancora studiando gli strumenti della CI.

Qual è il punto di utilizzo di un repository Artifact?

L'archiviazione su Nexus o Artifactory (o Archiva) è considerata un passaggio nella nostra catena di produzione o parte della catena di elementi di configurazione o potrebbe essere o?

In che modo posso rendere interattive le build "make" o gli script perl/bash/batch?

+0

@Slaks, perché è vero? Cosa stanno ottenendo per gli sviluppatori java? – macetw

+1

@SLaks Questo è poppycock. I gestori di archivi binari fanno bene a tutti gli sviluppatori che producono o consumano file binari; siano essi JAR, WAR, Debs, RPM, DLL, ecc. – noamt

+0

Questo link può essere utile: http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix – sorin

risposta

9

Un repository di elementi ha diversi scopi. Lo scopo principale è avere una copia di Maven Central (o qualsiasi altro repository Maven) per avere tempi di download più veloci e puoi usare Maven anche se Internet non funziona. Dato che non stai usando Maven, questo è irrilevante per te.

Il secondo scopo è quello di memorizzare i file in esso che si desidera utilizzare come dipendenza ma non è possibile scaricare liberamente da Internet. Quindi li compri o li prendi dai tuoi venditori e li metti nel tuo repository. Questo è anche più applicabile all'utente maven e al suo meccanismo di dipendenza.

Il terzo scopo importante è quello di disporre di una modalità centrale in cui è possibile memorizzare le versioni. Quindi, se si crea una release v1.0, è possibile caricarla in tale repository e con il modo pulito di nominare in maven è facile sapere come trovare la v1.0 e usarla con tutti gli altri strumenti. Quindi potresti scrivere uno script che scarica la tua versione con wget e installarla su un host.

La maggior parte delle volte questi repository hanno un modo di un processo di gestione temporanea. Quindi è possibile memorizzare v1.0 nel repository in staging. Qualcuno fa il test e quando la sua ammenda lo promuove al repository di rilascio, tutti possono trovarlo e usarlo.

È semplice integrarli con i progetti di Maven e sono molti altri framework di strumenti di sviluppo con una facilità di collegamento con l'edera, l'uva groovy e così via. A causa dello schema di denominazione non vi è alcuna limitazione che si usi bash o perl per scaricare/caricare file da esso.

Quindi, se si dispone di versioni o file che devono essere condivisi tra i progetti e non hanno una buona soluzione, un repository di artefatto potrebbe essere un buon punto di partenza per vedere come potrebbe funzionare.

+1

Sia Artifactory che Nexus Supporta i binari Java come binari .NET e Debs e RPM – noamt

+0

Non sono affatto d'accordo con l'affermazione "Ma sono progettati per funzionare al meglio con i progetti Maven e le esigenze delle dipendenze di Maven". Mentre questo è vero per Nexus, Artifactory è davvero strumento indipendente per la costruzione e la tecnologia, e funziona alla grande con quasi tutti gli strumenti di costruzione e il server di creazione permettendo all'utente di controllare il layout degli artefatti. Ha anche funzioni integrate per Gradle, Ivy, P2, .NET, RPM, ecc. – JBaruch

+0

Ho modificato leggermente il testo per rendere più chiaro il fatto che è possibile utilizzarli con quasi tutto e che molti strumenti hanno integrato un collegamento a un repository artefatto. Il clame era basato sul fatto che la maggior parte degli strumenti non leggono le impostazioni.xml di Maven e necessitano di un file di impostazioni speciale per connettersi al repository.Comunque questo è irrilevante perché Maven non è usato affatto nella domanda e per bash/perl la configurazione deve essere fatta comunque. Quindi l'ho rimosso. – mszalbach