2014-09-19 25 views
8

Qualcuno ha un'idea se è possibile utilizzare un repository github come dipendenza, senza che venga pubblicato su maven central.Studio Android - Gradle - GitHub Repo

Diciamo che sto sviluppando una libreria Android che ha il proprio repository github. Mi piacerebbe essere in grado di "compilare" questa libreria con dipendenza gradle, nel mio progetto di studio Android, senza dover pubblicare su Maven Central (almeno per il momento).

In altre parole: voglio utilizzare una dipendenza che non è centrale. È un vero e proprio repository github (una libreria Android che utilizza anche gradle).

Vorrei che il mio build.gradle a fare qualcosa di simile:

dependencies { 
    // Google Play Services (normal dependency) 
    compile "com.google.android.gms:play-services:5.2.08" 

    // The library I want to pull from github 
    compile "path_to_my_github_repo" 
} 

Grazie!

+0

vuoi dire qualcosa come: https://groups.google.com/forum/#!topic/adt-dev/gVDWMCAdxd8? – CommonsWare

+0

Forse questo: https://github.com/bat-cha/gradle-plugin-git-dependencies – Ayzen

+0

@CommonsWare non proprio. Il plugin delle dipendenze Git sembra essere quello che sto cercando. Purtroppo, ho già dato un'occhiata a questo, ma i problemi dicono che non è compatibile con Android-plugin. – Mathbl

risposta

6

È possibile farlo con Jitpack con Maven, Gradle e sbt.

Tuttavia, suggerisco caldamente di utilizzare invece gli artefatti binari in modo che si abbia la certezza che è uguale per ogni build dell'applicazione, si controlla la memoria degli artefatti e si sta utilizzando il rilascio ufficiale di un progetto e non alcuni costruzione a valle. Renderà anche le tue build molto più veloci e stabili.

La pubblicazione nel repository centrale è gratuita, facile e ben documentata ad es. http://central.sonatype.org/pages/producers.html e in particolare per Gradle allo http://central.sonatype.org/pages/gradle.html. È inoltre possibile trovare lots of real world examples on the Nexus community site.

Se non si controlla il progetto che si vuole consumare, vorrei suggerire di inviare questi puntatori per il progetto e forse anche aiutarli con una richiesta di pull ;-)

+1

+1 per JitPack. A proposito, crea solo la prima volta e poi ottieni sempre lo stesso artefatto. Ciò rende le ripetute build veloci. – Andrejs

+0

Il problema, naturalmente, è che NON si usa l'artefatto rilasciato ufficialmente da quel progetto e non si ottiene anche l'integrazione IDE di workind o l'inclusione automatica di javadoc e delle fonti. –

+0

Questo dipende davvero dal progetto. Se la loro build produce sorgenti/javadoc, si ottiene l'inclusione di IDE. Può essere anche una versione ufficiale, ad esempio: http://quickml.org – Andrejs

-1

Ciò che è necessario utilizzare è un repository binario. Conterrà le tue dipendenze durante lo sviluppo. Se si prevede di pubblicare il pacchetto su jcenter (e Maven central), è possibile ottenere un account Artifactory gratuito in oss.jfrog.org. Una volta fatto ciò, il tuo server CI può implementare la tua dipendenza e Gradle lo risolverà da lì.

0

Questo dovrebbe essere possibile e c'è un plugin gradle non ufficiale chiamato Gradle Git Repo plugin che afferma di fare ciò che stai cercando. Si noti, tuttavia, che non ho giocato io stesso per verificare che funzioni.

+0

c'è anche jitpack – Thufir

Problemi correlati