Como desarrollador Android, tarde o temprano necesitarás añadir una dependencia a tu proyecto. Esas dependencias son publicadas generalmente en repositorios de paquetes o librerías tales como Maven-Central or JCenter, pero ¿cómo podemos obtener librerías Android o JVM no publicadas en ningún repositorio de paquetes cuyo código sea abierto? ¿Deberia de clonar el código e incluirlo como parte de mi proyecto? ¡No! Con JitPack, puedes construir proyectos Git bajo demanda y te proporciona artefactos (jar o aar) listos para usarse. El único requisito es que, si la librería no ha sido publicada en JitPack, entonces debe de existir al menos una liberación de código en su repositorio Git (GitHub, BitBucket, GiLab…).

En uno de mis últimos proyectos, uno de los requisitos era conectar con una instancia de ownCloud para que los usuarios pudieran acceder a sus carpetas y archivos remotos. Los ownClouders han hecho un gran trabajo con su librería de Android, pero no está publicada en ningún repositorio de paquetes en este momento. Espero y estoy seguro que en el futuro subirán la librería to Maven-Central o JCenter, pero mientras tanto tuve que buscar una alternativa a descargarme el código fuente e incluirlo en mi proyecto. Investingando e indagando me encontré con JitPack, que me ayudó a simplificar mi trabajo.

¿Cómo podemos usar JitPack?

Es sencillísimo incluir una dependencia con esta herramienta y puede ser resumida en tan solo 2 pasos:

Primero, añade el repositorio de Maven JitPack a la lista de repositorios en el fichero raíz gradle.

allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } }

Segundo y por último, añade la información de la dependencia que quieres incluir en el fichero gradle de tu aplicación o librería.

compile "${GRUPO}:${ARTEFACTO}:${VERSION}"

donde

GRUPO es el dominio del host de Git más el nombre de usuario en el repo GitHub: com.github.<Username> GitLab: com.gitlab.<Username> BitBucket: org.bitbucket.<Username>

ARTEFACTO consiste en el nombre del repositorio.

VERSION es el nombre de la versión liberada de código, el hash del commit o el nombre de la rama seguido de -SNAPSHOT.

Ejemplos

Ya que he estado trabajando con la librería Android de ownCloud, voy a mostraros cómo podemos usar JitPack para incluir dicha librería usando:

1. una determinada liberación de código, e. g. release oc-android-library-0.9.15

compile 'com.github.owncloud:android-library:oc-android-library-0.9.15'

2. un commit concreto identificado por su hash, por ejemplo, b2034e1be22e429e53defadcd22ca6259fd7af50

compile 'com.github.owncloud:android-library:b2034e1be22e429e53defadcd22ca6259fd7af50'

3. una rama en particular, e. g. develop

compile 'com.github.owncloud:android-library:develop-SNAPSHOT'

Por lo tanto, es muy sencillito añadir una dependencia en nuestros proyectos de Android con esta herramienta.

Resolución de problemas

He puesto el número de versión pero falla…

Recuerda que tienes que incluir el nombre de la versión, no el número como se hace en otros repositorios de paquetes. Por ejemplo, imagina que quieres añadir la librería glide. Con Maven Central, sería:

compile 'com.github.bumptech.glide:glide:3.7.0'

y con JitPack

compile 'com.github.bumptech:glide:v3.7.0'

“V.3.7.0” es el nombre del paquete de la release, no “3.7.0”, como puedes comprobar en la carpeta de la liberacion de código en Github.

El nombre de la versión está bien, pero sigue fallando…

Écha un vistazo a la página principal de JitPack. Puedes buscar repositorios en ella y te guian para incluir la dependencia en tu proyecto

He seguido todos esos pasos, pero sigue fallando…

Desgraciadamente, JitPack no te garantiza que todas las compilaciones se construyan correctamente. Lee su documentación, prestando atención también a la sección de FAQ y los inconvenientes que Nish Tahir comenta en este artículo.

Enlaces relacionados

Usa la librería Android Priority Job Queue para tus tareas en segundo plano

OCR en Android

Informes en formato PDF en Android