2015-08-06 13 views
5

Esiste un gestore di repository che gestisce i file dll binari e si integra bene anche con il Jenkins?Gestore del repository che gestisce i file dll binari (risorse di progetto Embedded C/C++) e che si integra con Jenkins

Nexus può essere utilizzato per gestire i file dll in quanto questi file vengono creati come parte di progetti Embedded C/C++ e non sono sicuro che Nexus Artifact Manager supporti/si integri bene con tali progetti poiché supporta principalmente i progetti Java? C'è un modo per gestire automaticamente il caricamento e il download di tali risorse del progetto da Nexus/altri gestori di artefatti senza l'uso del file POM? Suggerisci nel caso ci siano altri Manufatti Artefatti che supportano artefatti binari.

risposta

5

Il gestore del repository Nexus è orientato a java, ma può essere utilizzato per archiviare tutti i file desiderati. Binari di tutti i tipi o anche solo file di configurazione del testo.
per automatizzare il processo di caricamento di file, è possibile utilizzare maven da linea di comando:

mvn deploy:deploy-file -DgroupId=com.you -DartifactId=file -Dversion=1.0 -Dpackaging=exe -Dfile=c:\out\file.exe -Durl=http://yourserver/nexus/content/repositories/releases -DrepositoryId=releases 

Quindi, per ottenere il file, si dovrebbe essere in grado di farlo direttamente con il seguente URL:

wget http://yourserver/nexus/content/repositories/releases/com/you/file/1.0/file-1.0.exe 

Questo è un approccio semplice all'uso di Nexus come repository di risorse generiche.

Spero che questo aiuti.

+0

Grazie per le informazioni sulla parte Nexus. Ma ancora una volta credo che ci sia una dipendenza dalla parte Maven e il comando mvn sopra creerà un file pom con cui lavorare. Tuttavia, controllerò con i comandi che hai fornito e cercherò di integrare gli stessi nel modo automatizzato usando Jenkins. Per accedere ai file che sono stati caricati sul Nexus deve essere scaricato tramite il comando wget dal passo di costruzione in Jenkins o c'è qualche plugin disponibile che deve essere integrato con il plugin di integrazione Nexus in Jenkins? – drsdarpan

+0

Per il caricamento, non è necessario un file pom. Il comando viene eseguito così com'è. Tutti i parametri sono sulla riga di comando. Per quanto riguarda l'integrazione con Jenkins, consulta https://wiki.jenkins-ci.org/display/JENKINS/Repository+Connector+Plugin –

+0

Grazie per le informazioni sul plug-in del Connettore repository, cercherò di verificarlo e se funziona beh allora sarebbe utile come Nexus ci sia stato usato per alcuni progetti. – drsdarpan

7

Artifactory può essere utilizzato per memorizzare qualsiasi tipo di file binari.
A partire da Artifactory 4.0, è possibile creare generic repositories che consente di caricare pacchetti di qualsiasi tipo. Non è necessario caricare alcun file POM e Artifactory non avrà bisogno di calcolare alcun metadata (ad esempio i metadati di Maven).
Per distribuire i file che è possibile utilizzare la REST API o UI, ad esempio:

curl -uUSER:PASS -T file.dll http://localhost:8081/artifactory/dll-local/path/to/file.dll 

Se si dispone di un certo layout che si desidera utilizzare per questo repository è possibile creare un custom layout e associarlo con il repository. Questo può essere utile per la pulizia automatica delle versioni di istantanee/integrazione e altre attività di gestione dei moduli.


Disclaimer: io sono affiliati a Artifactory

+1

Grazie per le informazioni sullo strumento Artifactory. Sarei più interessato al layout personalizzato. Darei un'occhiata a questa volta. – drsdarpan

+0

Inoltre, c'è un plugin di dipendenza che deve essere integrato con il plugin Artifactory per funzionare con Jenkins? – drsdarpan

+0

@drsdarpan la Jenkins Artifactory ha alcune dipendenze opzionali su altri plugin specificati [qui] (https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin) –

2

La versione open source di Nexus (Nexus OSS) è supporta molti formati di repository out of the box compreso Maven, NuGet, NPM, RubyGems e altri. Nexus funziona su Java (ad es. Come Jenkins). Non è solo Java ...

A seconda di come si prevede di ottenere i file DLL dal repository, diversi formati potrebbero essere più o meno adatti al proprio utilizzo. Potresti anche usare un formato personalizzato, ma poi fai affidamento su strumenti personalizzati.

Gli scenari che ho visto in molti clienti sono

  • utilizzando un pronti contro termine Maven e tirando i file sia in un Maven costruire insieme con il Maven NAR Plugin (usato per lo sviluppo nativo in C/C++)

  • utilizzando un pronti contro termine Maven e tirando via piano di HTTP GET chiamate utilizzando il linguaggio di strumento/build di scripting di scelta

  • utilizzando il formato NuGet e memorizzare le DLL in pacchetti Nuget in pronti contro termine e utilizzando NuGet per recuperarli per i progetti

Tutti questi funzionano bene.

+0

Mille grazie per aver fornito le diverse opzioni sui plugin che può essere integrato per caricare e scaricare i file. Darò sicuramente un'occhiata a queste opzioni una volta poiché l'uso di Nexus sarebbe l'opzione preffered in quanto Nexus è già stato usato per i progetti Java, quindi se Nexus può anche supportare i binari, allora sarebbe fantastico. – drsdarpan

Problemi correlati