Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Usar Apache Maven como una herramienta colaborativa

Carlos Yagüe
Usar Apache Maven como una herramienta colaborativa
El reproductor de video será cargado en breves instantes.

Descubre cómo utilizar Apache Maven como herramienta colaborativa para aprovechar esta característica tan útil pero que pasa desapercibida para muchos desarrolladores.

Apache Maven como herramienta colaborativa

El uso de Maven como herramienta colaborativa es algo poco habitual y poco documentado en toda la documentación relativa a Maven, pero, sin lugar a dudas, es una característica bastante notable que no siempre se utiliza debidamente, ya que Maven normalmente se utiliza como herramienta de construcción de aplicaciones, como herramienta para el testeo, etc.

A pesar de ello, Maven tiene unas capacidades innatas muy útiles a la hora de ser usada por distintos equipos de desarrollo y, bajo líneas de desarrollo de componentes o librerías comunes, poder utilizarlo de forma automática por el resto de proyectos y el resto de desarrolladores, ya sea a nivel de corporación o en el ámbito de la comunidad de software libre.

Un claro ejemplo son las librerías de Apache Commons, que están disponibles en los repositorios oficiales de Apache Maven, como en el repositorio central, o determinados repositorios de software libre que están publicados en internet.

Cómo funciona este proceso

Toda la comunidad de desarrolladores se beneficia de estas librerías, gracias al mecanismo de actualización de librerías de Maven, ya que cuando Maven compila un proyecto, inicialmente verifica si tiene que actualizar la librería o no, a través de unos metadatos que registran su repositorio local.

En el caso que la librería no estuviera lo suficientemente actualizada, en base a la política de actualización del repositorio, Apache Maven solicitaría a los repositorios que tiene en su proyecto que descargaran la versión más reciente de la librería, atendiendo a criterios de si la librería es de tipo release o de tipo snapshot.

Las librerías de tipo release son aquellas liberadas, que tienen un versionado que es simple, es decir, puede ser 1.0 o 1.1, pero no llevan detrás el sufijo snapshot.

En cambio, las librerías snapshot ofrecen un mecanismo de actualización más rápido a los desarrolladores, ya que en función de su política de actualización puede ser más agresiva. Podríamos tener a personas trabajando con un proyecto que quiera tener la actualización de la librería de forma diaria, que es la opción por defecto, o incluso por minuto.

Si lo trasladamos del enfoque del mundo de comunidad de software libre a una corporación, una empresa puede tener un equipo de desarrollo de librerías horizontales, que esté desarrollando y empujando el desarrollo de estas librerías y actualizaciones.

Incluso puede existir un sistema de integración continua que, cuando detecta que haya una subida de código a ciertas ramas de, por ejemplo, la rama develop o la rama trunk de un repositorio de código, continuamente esté haciendo deploy en el repositorio corporativo.

De esta manera todos los desarrolladores que tienen marcada como uso la versión, por ejemplo 1.0 snapshot, de ciertos componentes, todos los días, por defecto, o en función de lo que decidan, tendrán actualizada la librería.

Cuando el desarrollador define en su código una dependencia como snapshot, lo que está indicando es que quiere tenerla actualizada constantemente, en función del update policy que haya marcado.

Imagen 0 en Usar Apache Maven como una herramienta colaborativa

Básicamente, el comportamiento que hemos visto es que Eclipse, que es el compilador más habitual, o bien otro como IntelliJ o NetBeans, tiene como base Apache Maven, que es el que se encarga de orquestar la descarga de librerías de repositorios distribuidos, ya sean de la propia corporación o de la comunidad de software libre.

Ejemplo

Vemos un ejemplo de un repositorio, que en este caso es un repositorio de un JFrog Artifactory, con una URL ficticia.

  <repositories>
      <repository>
        <id>my_artifactory</id>
        <name>artifactory</name>
        <url>https:/my_artifactory/artifactory/central</url>
        <releases>
          <enabled>true</enabled>
          <updatePolicy>never<  /updatePolicy>
        </releases>
        <snapshots>
          <enabled>true</enabled>
          <updatePolicy>daily<  /updatePolicy>
        </ snapshots >
    <layout>default</layout>
      </repository>
    </repositories>

En esta declaración de repositorio se indica que tenemos activadas tanto las releases como las snapshots de dicho repositorio, y también indicamos que no queremos actualizar las releases, y en cambio las snapshots las queremos actualizar cada día.

Conclusiones

Hay que tener siempre presentes las diferencias entre los tipos de repositorios:

  • Los de tipo releases, que son versiones liberadas, testeadas y publicadas en un repositorio para que cualquiera la utilice con total tranquilidad ya que han sido lo suficientemente testadas.
  • Los de tipo snapshots, que son versiones que el propio desarrollador está asumiendo que pueden estar menos probadas, que están en constante cambio y que podrían fallar porque no han sido testeadas de la misma forma.

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.

cta-blog-curso-maven

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Programador Java Web

Programador Java Web

carrera

Incluye 8 cursos:

  • Curso de Git, GitHub y Jekyll
  • Curso de Spring Framework de Java
  • Curso de Desarrollo Web con Java EE

y 5 cursos más!

Duración: 52 horas y 54 minutos

Curso de Maven

Curso de Maven

curso

Con este curso aprenderás:

  • Configurar tu entorno de desarrollo con Apache Maven.
  • Comprenderás los conceptos clave de Apache Maven.
  • Dominarás el ciclo de vida de Apache Maven.

Duración: 4 horas y 55 minutos

Qué es Apache Maven

Qué es Apache Maven

Metodologías y herramientas

29 de Abril de 2019

¿Quieres saber qué es Apache Maven? Te contamos lo más destacado de esta importante herramienta que nos permitirá gestionar y construir proyectos Java.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars