Blog sobre desarrollo en Java/Jakarta EE, VueJS, DevOps y más..

Mostrando las entradas con la etiqueta maven. Mostrar todas las entradas
Mostrando las entradas con la etiqueta maven. Mostrar todas las entradas

martes, 20 de octubre de 2020

Tareas en Jenkins: Compilar proyecto Spring con Maven


En esta publicación veremos como crear la primer tarea en Jenkins, la cual consistirá en descargar el código fuente de un proyecto Spring desde GitHub, y compilarlo con Maven.

Para ello es necesario tener configurado Git, JDK, y Maven. En esta publicación se explica como hacerlo.

Crear tarea

1. Hacer clic en el menú "Nueva Tarea"


2. Establecer un nombre para la tarea, seleccionar la opción "Crear un proyecto de estilo libre", y por último hacer clic en el botón "OK"


3. En la pestaña "General", se deben realizar las siguientes acciones:
  • Colocar una descripción de la tarea
  • Tildar casilla "GitHub Project"
  • Especificar la dirección URL del proyecto


4. En la pestaña "Configurar el origen del código fuente", se deben realizar las siguiente acciones:
  • Seleccionar el radiobutton de "Git"
  • Especificar la dirección URL del repositorio
  • Agregar las credenciales (nombre de usuario y contraseña) para poder acceder al repositorio
  • Especificar la rama con la que se desea trabajar. Por defecto es master. 
 

5. En la pestaña "Disparadores de ejecuciones":
  • Seleccionar "Ejecutar Periodicamente"
  • En la opción "Programador", a modo de ejemplo,  le diremos a Jenkins que consulte el repositorio cada 5 minutos.

6. En la pestaña "Ejecutar", añadir un nuevo paso y seleccionar la opción "Ejecutar tareas Maven de nivel superior".

 
7. Para configurar la tarea maven, se debe seleccionar su versión (la que esta instalada en el equipo), y especificar "clean package" como se observa en la siguiente imagen:
 

Con estos pasos ya tendremos configurada nuestra primer tarea en Jenkins. Para observar su ejecución, nos ubicaremos en el Dashboard, y tras esperar unos minutos comenzará el trabajo.
 
Si hacemos clic en el nombre de la tarea, accederemos a sus detalles. En la siguiente imagen, se puede observar en el panel "Historia de tareas", que la misma se ejecutó dos veces exitosamente (lo sabemos por que el color de los círculos es azul, de haber sido rojos nos indicaría que hubo un error ), y se encuentra activa una nueva ejecución (la número 3).
 

 
Si hacemos clic en #3, veremos mas detalles relacionadas a este número de ejecución:
 

En "Console output" podemos ver el resultado que la consola arroja.
 

De esta manera finaliza la construcción de nuestra "primer tarea con Jenkins". En próximas publicaciones veremos como se pude notificar via mail al equipo de desarrollo e caso de que la compilación falle, como incorporar JUnit, SonarQube, desplegar en un servidor TomCat y/o Payara, crear pipelines y mucho más.

Compartir:

Jenkins: Configurar JDK, Maven y Git

 


Para que Jenkins pueda trabajar con proyectos Java y el sistema de versión de Git, descargando, compilando y testeando el código fuente, se debe especificar en que directorio se encuentran instalados de cada uno de los elementos. Para ello, haremos clic en el menú "Administrar Jenkins"

 

A continuación, seleccionamos la opción "Global Tool Configuration"

 
Luego, debemos desplazarnos hasta encontrar las secciones (JDK, Git y Maven), y allí especificar sus rutas de instalación. A continuación, se observan unas capturas a modo de ejemplo, usted debe reemplazar las rutas por las que correspondan en su caso.

Configurar Git

Configurar Maven 

Configurar JDK


Para finalizar, se debe hacer clic en el boton "Apply" y luego en "Save"
Compartir:

domingo, 30 de agosto de 2020

Crear JAR con dependencias

 

Días atrás tuve que desarrollar un pequeño cliente standalone con algunas dependencias para automatizar unas peticiones a un servicio web. Al momento de ejecutarlo desde Netbeans no hubo problemas. Estos comenzaron a presentarse cuando intente ejecutar la aplicación desde consola mediante el comando java -jar, ya que primero no encontraba la clase principal y luego no encontraba las clases que estaban contenidas en las dependencias arrojando un error de java.lang.ClassNotFoundException.

Para solucionar estos inconvenientes, añadí en el archivo pom.xml un plugin llamado "maven-assembly-plugin", el cual nos permite crear un archivo .jar ejecutable incluyendo todas las dependencias dentro de el.

Dentro de la sección "plugins", debemos agregar lo siguiente:

   <!-- Maven assembly-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <mainClass>com.fcastillo.upload.files.app.App</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

Es muy importante que entre las etiquetas <manifest>, coloquemos el nombre de la clase principal o ejecutable, que en este caso es App y esta dentro del paquete com.fcastillo.upload.files.app.

Con esto solo nos resta ubicarnos en la raíz de nuestro proyecto y ejecutar el comando: mvn package 


 Maven comenzara a descargar las dependencias y a empaquetarlas en un archivo jar. En la siguiente salida de consola vemos que se crearon dos archivos:

*upload-file.jar
*upload-file-jar-with-dependencies.jar (es el que debemos usar)

 

 

Con esto ya podremos ejecutar nuestro archivo jar sin problemas mediante java -jar upload-file-jar-with-dependencies.jar

Compartir:

Acerca de mí

Mi foto
Capital, Santiago del Estero, Argentina