Desarrollo de librerías en la actualidad
En el mundo del desarrollo de software, cada vez se está potenciando más las comunidades de desarrollo de software libre.
Hay una comunidad de software libre potente que está empujando el desarrollo de librerías comunes, como puede ser la comunidad Apache Commons, que ofrece, bajo un repositorio distribuido publicado en internet, librerías que están disponible para que puedan ser utilizadas por los desarrolladores.
Esta situación se suele trasladar también al mundo de la empresa, de forma que cada corporación tenga su repositorio de librerías comunes, que se pueden ser librerías desarrolladas por un equipo de desarrollo horizontal, que se encargue de preparar esas librerías para el resto de proyectos de desarrollo, en modo de factoría de software.
Despliegue de librerías en Artifactory
Para realizar esta operación se utiliza el comando mv deploy, y a partir de la librería que se instala en el repositorio local, se procede a hacer una subida al repositorio Artifactory.
En este caso se utilizará un repositorio de Artifactory a partir de un contenedor Docker, el existente en el repositorio del Docker Hub de Matt Grouter (https://hub.docker.com/r/mattgruter/artifactory).
Una vez dentro de la web seguimos las indicaciones para realizar el proceso:
- Se descarga la imagen con el comando
docker pull mattgruter/artifactory
- Después se ejecuta el comando
docker run -p 8080:8080 mattgruter/artifactory
Una vez se esté logado como administrador, pasaremos a realizar un despliegue utilizando Eclipse, para hacer una operación de deploy de una librería. También se podía hacer manualmente, pero para proyectos jerárquicos y multi-módulos muy complejos es mucho más tedioso hacerlo de esta forma que hacerlo directamente a través del entorno de desarrollo.
Ejemplo
Tenemos esta librería, que aglutina el comportamiento reutilizable de operaciones de entrada-salida, como lectura de archivos. En el fichero pom.xml de esa librería, vamos a establecer una configuración de su distribution management, que es el repositorio donde se tienen que subir las librerías.
En el distribution management definimos dos repositorios, uno para releases y otro para snapshots:
<distributionManagement>
<repository>
<id>my_artifactory</id>
<name>Release Repository</name>
<url>https://openwebinars.net/artifactory/libs-release-local</url>
</repository>
<snapshotRepository>
<id>my_artifactory</id>
<name>Snapshot Repository</name>
<url>https://openwebinars.net/artifactory/libs-snapshot-local</url>
</snapshotRepository>
</distributionManagement>
Ambos repositorios se identifican como my_artifactory
, es así porque este repositorio tiene autenticación básica y requiere usuario y contraseña, con lo que hay que establecer en algún sitio esas credenciales.
Para ello, Maven ha previsto, en su archivo settings.xml, la posibilidad de establecer bajo la pestaña <servers>
la posibilidad de establecer las credenciales de un servidor. Esa identificación que se establece es la forma en la que se relaciona en la definición en la marca <distributionManagement>
En este caso incluiríamos este código de ejemplo:
<server>
<id>my_artifactory</id>
<username>openwebinars</username>
<password>123456</password>
</server>
A continuación procedemos a realizar la subida de esta librería, teniendo en cuenta que si se trata de una librería snapshot podemos sobrescribir la existente en el repositorio, y en el caso de que fuera una versión release, por ejemplo la versión 1.0, tendríamos que subir de versión, por ejemplo a la 1.1, ya que no se permite sobrescribir librerías liberadas de este tipo.
En este caso vamos a subir una librería tipo snapshot.
Después desde la opción Run Configurations, ejecutamos el comando Maven clean deploy, aunque podríamos utilizar únicamente el comando deploy, pero es aconsejable usar el primero para evitar subir una librería con algunos cambios anteriores.
Ejecutamos y en la pestaña de la consola vamos a ver el proceso que se realiza el comando.
Vemos que primero limpia el directorio target, después compila las fuentes, copia los recursos, empaqueta la librería, instala la librería en el repositorio local y por último, al haber usado el comando deploy, realiza la subida en el repositorio.
Una vez que finalice todo el proceso de forma satisfactoria, ya tendremos la librería disponible en la API Factory.
Aprende todo lo que necesitas para trabajar con proyectos que usen Apache Maven y conoce las soluciones que hay que usar para resolver los problemas más frecuentes que pueden ocurrir.
Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.