Gradle Build Tool I Moderna automatización de compilación de código abierto

Recuerde cuáles son los pasos involucrados en la ejecución de un programa Java, el programa primero se compila y el código de bytes se crea en el momento de la compilación. En el tiempo de ejecución, se cargan las clases, se verifica el código de bytes y luego el intérprete lee el código de bytes y ejecuta las instrucciones.
¿Como sucedió esto?
Simplemente hacemos clic en Generar y luego en Ejecutar, o simplemente en Ejecutar (la compilación sucede automáticamente). ¿Alguna vez se preguntó por qué no había una necesidad explícita de dar los comandos para cargar las clases, crear códigos de bytes o vincular, etc.? Aquí es donde entra el sistema de automatización.
Para citar, “ Build Automation es el proceso de automatizar la creación de una compilación de software y los procesos asociados, incluida la compilación del código fuente en bytecodes, el empaquetado de código binario y la ejecución de pruebas automatizadas..”
Como ejemplo, solemos hacer clic en la opción «Crear», el propio sistema lleva a cabo todos los procesos necesarios para ejecutar nuestro código fuente, es decir, ejecuta automáticamente todas las tareas (compilar, cargar, vincular, empaquetar, etc.) y ejecuta nuestro código. Existen varios otros sistemas de automatización como Apache Ant y Apache Maven. Cada uno de estos sistemas sigue algunas convenciones. La cita, «convención en lugar de configuración» es muy famosa en este mundo de compilaciones automatizadas.
Suponga que ha creado un proyecto con muchas clases y recursos (por ejemplo, archivos de imagen y diseño). Todos los archivos se guardan en una carpeta y le das este proyecto a otra persona. ¿No será difícil para esa persona entender? Por lo tanto, el sistema de compilación sigue ciertas convenciones. Como todo proyecto debería tener la estructura así:

  • carpeta src : contiene todas las clases
  • carpeta res : contiene todos los recursos
  • carpeta de manifiesto : que contiene las configuraciones del proyecto.

Con esto, la otra persona sabrá que todo el código fuente se guarda en la carpeta src y todos los recursos en la carpeta res. De manera similar, existen otras convenciones para mantener archivos de prueba y archivos de compilación según el sistema de compilación utilizado por la aplicación.
Con esto, entendemos el significado de la afirmación de que «Gradle es un sistema de automatización de compilación».

  1. Lenguaje específico de dominio:  utilizamos lenguajes específicos de dominio para describir tareas relacionadas con la automatización del análisis y la transformación del código fuente. Es un lenguaje informático especializado en un dominio de aplicación particular. Estos son lenguajes pequeños y expresivos diseñados a medida para tareas específicas. Un ejemplo es HTML para páginas web.
    La palabra dominio se refiere a un “área o esfera de conocimiento, influencia o actividad”, es decir, los DSL están muy enfocados en cierto tipo de problemas o dominios. Centrarse en un dominio nos brinda un contexto que define un marco lógico dentro del cual podemos desarrollar modelos para una aplicación, es decir, dado un dominio, podemos implicar lógicamente todas las propiedades y reglas que deben definirse para resolver un problema específico para esa área de interés. .
  2. La palabra específico nos da el contexto acotado y ayuda a mantener las cosas relevantes y enfocadas.
    Ej: si se ha encontrado con el uso de «makefile» en sistemas Linux, el makefile es un DSL que se usa para especificar reglas y dependencias para construir una aplicación.
    La simplicidad es fundamental para el éxito de DSL. Una persona familiarizada con el dominio del idioma debe entenderlo fácilmente. Podemos definir las dependencias para la ejecución de una determinada tarea en DSLs. Por ejemplo, si estamos creando DSL para expresar reglas comerciales en el dominio de los seguros, debe basarse en su vocabulario, es decir, deben usarse términos como préstamo, riesgo, validez, los términos que la gente usa todos los días para comunicarse con otros para que es fácil de entender, evolucionar y mantener. Debería parecer que el DSL simplemente especifica algunas reglas discretas en lugar de dar una sensación de programación.

Groovy
Es un lenguaje orientado a objetos que también se puede utilizar como lenguaje de secuencias de comandos para la plataforma Java. Admite escritura dinámica y estática. Es muy similar a java en el sentido sintáctico pero tiene otras cosas. Por defecto, también incluye varias bibliotecas.
Instale Groovy en su sistema y en la consola, intente ejecutar algunos códigos Java.

En la captura de pantalla anterior, no incluimos ninguna biblioteca, simplemente imprimimos Hello world como lo hacemos en Java. Según las especificaciones, los puntos y comas, corchetes, etc. pueden eliminarse en Groovy. Consulte la documentación oficial para eso. Groovy es un lenguaje que subyace a Gradle y todos los scripts en grado son DSL implementados usando Groovy.

Características principales:

  • Minimizar la configuración requerida para nuevos proyectos:  Gradle tiene un conjunto de ajustes de configuración predeterminados que se aplican automáticamente a cada proyecto que cree en Android Studio. Si está desarrollando un proyecto que no cumple con estas reglas de configuración predeterminadas, Gradle es fácil de personalizar.
  • Declarar dependencias del proyecto:  las dependencias pueden ser módulos, archivos JAR o bibliotecas, y pueden estar ubicadas en el sistema de archivos local o en un servidor remoto. Si ha utilizado Eclipse, debe haber encontrado una situación en la que debe agregar algunos JAR externos en sus aplicaciones. Debe ir explícitamente, descargarlos correctamente según la versión requerida y agregarlos en la variable classpath. Gradle es eficiente en el sentido de que resuelve automáticamente todas las dependencias de compilación simplemente especificando las necesarias en los archivos de configuración. Se descarga y almacena en caché según la versión compatible.
  • Prueba tu proyecto:  Gradle genera automáticamente un directorio de prueba y un APK de prueba a partir de las fuentes de prueba de tu proyecto y puede ejecutar tus pruebas durante el proceso de compilación.
  • Supera a todos los demás sistemas de automatización:  Gradle se basa en los sistemas de compilación existentes al combinar las mejores funciones de sistemas como Apache Ant y Maven y elimina sus desventajas. El más destacado de ellos es que no utiliza XML. Los desarrolladores lo llaman eliminar el ruido. Considere la siguiente captura de pantalla que muestra un archivo de configuración en Apache Maven y Gradle.

También vemos la diferencia en la longitud del código y la legibilidad. Debido a todas estas características, junto con varias otras, como el soporte para proyectos múltiples, etc., le da a Gradle el rango 1.

Este artículo es una contribución de Ekta Goel . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *