Menu.bat Una forma cómoda de ejecutar comandos y aplicaciones, por ejemplo para Maven

2
21567

Menu.bat Una forma cómoda de ejecutar comandos y aplicaciones, por ejemplo para Maven

Índice de contenidos

1. Introducción
2. Ventajas de usar el menu.bat en los desarrollos
3. El menú menu.bat
4. Añadiendo una opción de menú
5. Un menu.bat de producción
6. Portarlo a Linux y Unix
7. Conclusión

1. Introducción

El trabajo diario con entornos de desarrollo complejos normalmente está plagado de tareas repetitivas que se deben realizar, muchas de las cuales se realizan mediante ficheros de procesos por lotes o scripts en Windows o Unix.

Para resolver este problema he creado un menú genérico en formato Windows que es muy fácil de modificar, añadiéndole funcionalidades. Este menú organiza la forma de ejecuta tareas, comandos y aplicaciones repetitivas o comunes.

Como responsable de desarrollo para diversas empresas siempre que comienzo un proyecto y organizo el entono de desarrollo me creo un pequeño menú.bat. Este archivo lo coloco siempre en la raíz del código fuente del proyecto, de manera que se sube al control de versiones con el resto del proyecto.

Puede parecer simple, pero los que lo prueban, y lo digo por experiencia, cuando comienzan un nuevo proyecto Maven lo primero que hacen es copiar mi menú.bat y modifícalo…

2. Ventajas de usar el menu.bat en los desarrollos

El hecho de utilizar este menú en los desarrollos tiene varias ventajas:

  • Acelera las tareas repetitivas. Por ejemplo podemos crear opciones de menú para compilar, probar, desplegar, compilar y probar con otras condiciones o perfiles, etc.
  • Se integra dentro del código fuente del proyecto con facilidad y su mantenimiento y control de versiones es simple.
  • Documenta claramente qué tareas se han definido dentro del entorno de desarrollo.
  • No requiere instalar software adicional en el PC de desarrollo.
  • Facilitar la curva de aprendizaje cuando se incorpora un nuevo miembro al proyecto.
  • Está preparado para Windows 7 y XP, aunque se puede portar con facilidad a otros entornos.
  • Se puede realizar fácilmente la versión Unix para la Shell.

3. El menú menu.bat

Vamos a comenzar por una versión simple:

Al ejecutar el menu.bat nos aparece esta ventana de comandos:

Cuando pulsemos sobre la opción 0 se abrirá una ventana adicional y comenzará la ejecución del subcomando, permaneciendo siempre abierto el menu.bat. De esta manera podremos lanzar las opciones del menú a conveniencia.

4. Añadiendo una opción de menú

Bien, ya tenemos nuestro menú básico. Vamos a añadirle una opción de menú. Además lo vamos a hacer con un poco de gracia:

  • La opción de menú debe ejecutar el comando «mvn jetty:run» que inicia un servidor de aplicaciones en local.
  • Además queremos abrir un navegador con la dirección http://localhost:8080/miapp/ automáticamente
  • Como premio, queremos que además el navegador tarde unos segundos en abrirse, pues queremos que le dé tiempo a la aplicación a levantarse.

Esto es lo que he añadido:

La ejecución del menú ahora muestra lo siguiente:

Hemos añadido tres cosas:

  • Una nueva opción dentro del menú principal. Simplemente hemos copiado y pegado una opción ya existente y hemos modificado las tres primeras líneas de la nueva opción.
  • Hemos añadido el subcomando «ejecutar»
  • También hemos añadido el subcoamndo «explorer», que será llamado desde el subcomando «ejecutar»

Y para los aventureros: ¿porqué abro el navegador antes de ejecutar el comando «mvn clean install jetty:run»?

5. Un menu.bat de producción

Os dejo un ejemplo real de un menu.bat un poco más largo. Si lo estudiáis veréis varias técnicas útiles para vuestros proyectos:

Y el resultado en pantalla es:

Algunas cosas interesantes:

  • Suelo añadir una opción 0 al principio que limpia todo y recompila todo. Le solemos llamar el «cerapio», pues cuando tienes problemas de compilación, de bibliotecas, etc, basta darle al “cerapio” para que muchos de ellos desaparezcan. Sirve además como «prueba del algodón», es decir, actualizo desde control de versiones, le doy al cerapio y luego ejecuto lo que ha desarrollado otro.
  • Hay técnicas usadas en proyectos Maven multimódulo, por ejemplo con cambios de directorio, ejecución de pruebas unitarias, uso de perfiles específicos, etc.
  • Preparo variables de entorno previas a la ejecución de los subcomandos, incluyendo la ruta y unidad actual

6. Portarlo a Linux y Unix

No es nada difícil portar este tipo de menú a Shell script de Unix. Pero eso os lo dejo de ejercicio.

7. Conclusión

En este tutorial hemos aprendido a crear un menú para nuestros desarrollos sobre Windows, de forma muy sencilla y que documenta claramente las tareas de desarrollo habituales. De esta forma facilitamos el desarrollo a todos los miembros del proyecto.

A partir de ahora en nuestros proyecto probablemente siempre pongamos en el directorio raíz un «menu.bat»

2 Comentarios

  1. Buenos dias Amigo. Saludos. Queria saber si Ud presta servicios de programacion de archivos por lotes con un Work Flow especifico. Digamos lo soguiente:

    1.- Desinstalar un Software via windows o via ejecucion de un software donde debemos pasar ciertos parametros.
    2.- Copiar una carpeta desde una ruta especifica en el perfil de windows a otra ruta en la misma pc
    3.- Instalar el mismo software que se desinstalo en el paso 1 donde se pasan ciertos parametros.

    Yo me encuentro en Ciudad de Mexico. Me comentas por favor. Muchas Gracias. !

Dejar respuesta

Please enter your comment!
Please enter your name here