2012-03-27 7 views
7

Ho bisogno di utilizzare la libreria mongo-storm e Clojars non have it. Quindi ho clonato il progetto, ho compilato e copiato il jar nella mia cartella lib a mano. Ma è un progetto di squadra ed è inaccettabile che ogni membro faccia tali passi a mano.Come condividere una dipendenza che non è in Clojars

Ci sono idee migliori e standard su come risolvere questo problema?

+2

È inoltre possibile utilizzare "lein install" per rendere la dipendenza disponibile localmente sul computer. Puoi quindi usarlo da un altro progetto nel solito modo. (Non c'è bisogno di copiare i vasi manualmente.) Questo potrebbe non essere conveniente per una squadra, però. – raek

risposta

10

Il team deve disporre di un archivio privato per questo scopo. S3 è un substrato ideale per questo, ed è possibile utilizzare il plugin Leiningen s3-wagon-privato per distribuire e consumare i manufatti a/da un S3 secchio protetto:

https://github.com/technomancy/s3-wagon-private

2

Se il progetto ha una licenza che permette (se è open source) puoi inviare te stesso la tua versione non ufficiale a Clojars usando il tuo ID di gruppo. Clojars riserva gli ID di gruppo "org.clojars.username" per questo scopo. Questo è descritto in https://github.com/ato/clojars-web/wiki/tutorial e https://github.com/technomancy/leiningen/blob/master/doc/DEPLOY.md.

Il modo migliore sarebbe probabilmente se potessi contattare l'autore e spingerlo a fare una corretta pubblicazione. (Inoltre, il readme non indica quale licenza ha il progetto.)

2

Una soluzione che non richiede la creazione di un repository privato sarebbe quella di sfruttare la capacità di checkouts in leiningen.

+0

La mia versione di lein è 1.7, i checkout sono lein 2 feature – Chiron

+0

Guardate le fonti 1.7.1, è effettivamente [supportato] (https://github.com/technomancy/leiningen/blob/1.7.1/src/leiningen/classpath. clj # L22) – skuro

+0

Corretti, i checkout sono in circolazione da molto tempo. Ma usare un repo basato su S3 è molto meglio per questo caso d'uso. – technomancy

0

Idealmente, se il tuo team utilizza un sistema di gestione delle dipendenze basato su maven (come Leiningen), avresti impostato un gestore di repository. È quindi possibile distribuire la libreria al gestore del repository del proprio team.

La maggior parte dei gestori di repository ha già incluso Maven Central e semplifica sia l'aggiunta di repository aggiuntivi al proxy (ad esempio Clojars) che l'hosting dei propri repository (per mongo-storm e il progetto in fase di sviluppo).

Dopo aver impostato una configurazione, una delle cose che si desidera assicurarsi è che la propria squadra sia impostata come proxy di repository o come repository aggiuntivo da cui estrarre i jars.

È possibile trovare un elenco di gestori repository su maven site.

Problemi correlati