Apache Maven: Comandos utiles

Apache Maven es una herramienta de gestión de proyectos que automatiza la construcción, informe y documentación de software. Usa un archivo POM (Project Object Model) basado en XML para definir cómo se construye un proyecto, sus dependencias y cómo se empaqueta. Esto estandariza el proceso, permitiendo que cualquier desarrollador compile, pruebe y empaquete un proyecto de forma consistente.

Conocer los comandos de Maven es clave porque te da control total sobre el ciclo de vida de tu proyecto. Te permite automatizar tareas, gestionar dependencias, depurar problemas de construcción y personalizar el proceso. Dominar estos comandos te hará más productivo y autónomo al manejar proyectos de software.

Continue reading

Borrar todos los directorios target en maven

Todo desarrolldor Java conoce Maven. Una herramienta que funciona igual que en su día ant o Gradle. La idea es teer una herramienta que en base a la configuración del proyecto (ficheros pom.xml) sabe cómo compilar, en qué orden y qué dependencis tiene (además de resolverlas e instalarlas si puede).

Normalmente se compila usando un comando como mvn compile o mvn package, el resultado se generar e un subdirectorio llamado target. Para limpiar el proyecto y borrar todo el contenido generado se usa el comando mvn clean.

Cuando tenemos un proyecto con subproyectos (submodulos, en maven) si es muy complicado puede volverse loco y no hacerlo bien. En Bash tenemos un truco para borrarlos de forma recursiva, con el comando (ejecutado en el raíz del proyecto):

for f in $(find . -type d -name target -exec echo {} \;); do rm -rf $f; done

Podemos ver el tamáño del directorio con:

du -h -d1

Por ejemplo, si comparamos un proyecto antes y después de hacer esto:

Una diferenci de 9 GB !!!

Crear proyecto Java con maven en CLI

Hoy en día, lo normal es crear nuestros proyectos Java desde nuesto IDE (editor) pero en ocasiones, nos va bien o porqué no tenemos un IDE hacerlo en consola (CLI). Como regla general podemos usar este comando:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Esto nos genera el proyecto sin preguntar nada. También podemos simplificar el comando:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart

Que nos preguntará por el groupId, artifactId, etc:

Define value for property 'groupId': com.severoochoa.programacion
Define value for property 'artifactId': tarea3
Define value for property 'version' 1.0-SNAPSHOT: :
Define value for property 'package' com.severoochoa.programacion: :
Confirm properties configuration:
groupId: com.severoochoa.programacion
artifactId: tarea3
version: 1.0-SNAPSHOT
package: com.severoochoa.programacion
Y: : y

Y obtenemos lo mismo que en el primer caso.

Log de mensajes HTTP en Mule 4

Introducción

Mule es ESB (Enterprise Service Bus) Se usa para enviar/recibir mensajes heterogéneos entre diferentes productos/consumidores.

Admite muchos componentes de transporte y servicio como JMS, SOAP, JBI, BPEL, EJB, AS/400, HTTP, JDBC, TCP, UDP, SMTP, FILE, FTP y más.

Como en Internet el idioma padre es HTTP vamos a ver cómo hacer logging de las peticiones y respuestas HTTP que pasan por mule.

Continue reading