Skip to main content

14. Repositorio de Artefactos

El repositorio de artefactos permite almacenar y versionar recursos reutilizables como librerías internas, SDKs compartidos, componentes de UI, configuraciones estándar, y builds firmadas. Esta estrategia garantiza reutilización, trazabilidad y control de versiones.


14.1 Objetivos

  • Centralizar artefactos compartidos por diferentes apps o módulos
  • Reducir duplicación de código y errores
  • Facilitar el mantenimiento de SDKs internos
  • Permitir builds firmadas y verificadas para despliegue o distribución

14.2 Tipos de artefactos almacenados

Tipo de ArtefactoEjemplos
Librerías internassdk-identidad, core-utils, network-interceptors
Componentes UIalpura-ui-buttons, alpura-theme-compose
Builds firmadas.aab, .apk para QA, Producción
Configuración compartida.jar con lógica común (Ej: validaciones, seguridad)
Documentación generadaDokka HTML, JSON Specs, Changelogs

14.3 Herramientas recomendadas

HerramientaPropósito
GitHub PackagesRepositorio Maven para dependencias internas
JFrog ArtifactoryAlmacenamiento seguro y enterprise
Maven CentralPara compartir librerías públicas
Google Drive (solo builds)Backups puntuales QA / Producción

14.4 Publicación de librerías internas

En build.gradle.kts

publishing {
publications {
create<MavenPublication>("release") {
groupId = "com.alpura.libs"
artifactId = "core-utils"
version = "1.0.3"

afterEvaluate {
from(components["release"])
}
}
}
repositories {
maven {
url = uri("https://maven.pkg.github.com/alpura/mobile-libs")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
}
}
}
}

14.5 Buenas prácticas

✅ Versionar cada cambio en el artefacto (vX.Y.Z)
✅ Documentar cada release (README, changelog)
✅ Proteger el repositorio con autenticación
✅ Revisar dependencias transitivas antes de publicar
✅ Evitar hardcode de claves en build.gradle.kts


14.6 Seguridad

  • Usar tokens personales (PAT) para acceso a repositorio
  • No subir artefactos sin revisión o test previo
  • Validar que las librerías no expongan llaves o APIs sensibles

14.7 Integración con CI/CD

  • Publicar automáticamente tras merge a rama release
  • Validar build antes de subir (./gradlew build publish)
  • Notificar en Slack o correo al equipo tras publicación exitosa

El uso de repositorios de artefactos fomenta la reutilización de software, la calidad controlada y la trazabilidad de librerías internas dentro del ecosistema de desarrollo Android.