Cuando trabajamos con proyectos Java, a menudo nos encontramos con la molestia de tener que ejecutar varios comandos para compilar y luego buscar el archivo .jar para poder correr la aplicación. Esto puede ser tedioso y poco práctico, especialmente si queremos algo más ágil, como el botón de Play que ofrecen los IDEs para ejecutar el programa con un solo clic.
Para simplificar este proceso, podemos usar el plugin Application de Gradle, que está diseñado para declarar proyectos como aplicaciones ejecutables. Solo necesitamos añadirlo en nuestro archivo build.gradle con la línea:
apply plugin: 'application'
Una vez aplicado, este plugin nos proporciona nuevas tareas que facilitan la ejecución y distribución de nuestra aplicación. Por ejemplo, la tarea más útil es run, que compila y ejecuta el proyecto sin que tengamos que buscar manualmente el .jar ni configurar el classpath. Simplemente ejecutamos:
gradle run
y la aplicación se inicia automáticamente, igual que si pulsáramos el botón de Play en un IDE.
Además de run, el plugin añade otras tareas interesantes como distTar y distZip, que generan paquetes en formato .tar o .zip respectivamente, para distribuir nuestra aplicación fácilmente. También está la tarea installApp, que instala la aplicación en el sistema operativo, dejándola lista para usarse como cualquier otro programa instalado.
Para que el plugin Application sepa qué clase debe ejecutar, es necesario configurar la propiedad mainClassName en el build.gradle. Por ejemplo, si nuestra clase principal se llama HolaMundo, añadimos:
mainClassName = 'HolaMundo'
Esto indica al plugin cuál es el punto de entrada de la aplicación, y es equivalente a ejecutar manualmente el comando java -cp ... HolaMundo que hacíamos antes.
Con esta configuración, al ejecutar gradle run veremos que la aplicación se ejecuta directamente. En el caso de un programa sencillo como un Hola Mundo, veremos el mensaje en la consola. Si la aplicación fuera más compleja, con interfaces gráficas o procesos en segundo plano, también se ejecutaría sin problemas, mostrando ventanas o comportamientos propios.
En definitiva, el plugin Application nos permite correr, distribuir e instalar aplicaciones Java de forma mucho más sencilla y rápida, eliminando la necesidad de comandos manuales complicados y acercando la experiencia a la que tenemos en los IDEs.