Grado

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 14 de agosto de 2019; las comprobaciones requieren 30 ediciones .
grado
Tipo de herramienta de automatización de compilación [d]
Escrito en Java , Groovy [2] y Kotlin
Sistema operativo multiplataforma
Primera edición 2007
plataforma de hardware máquina virtual de Java
ultima versión
Estado activo
Licencia Licencia Apache 2.0 [3]
Sitio web gradle.org
 Archivos multimedia en Wikimedia Commons

Gradle  es un sistema de compilación automatizado basado en los principios de Apache Ant y Apache Maven , pero proporciona DSL en Groovy y Kotlin en lugar de la forma tradicional de representación de configuración de proyecto similar a XML .

A diferencia de Apache Maven , que se basa en el concepto de ciclo de vida del proyecto, y Apache Ant , en los que el orden de ejecución de tareas (objetivos) está determinado por dependencias (depends-on), Gradle utiliza un gráfico acíclico dirigido para determinar el orden en qué tareas se ejecutan.

Gradle se diseñó para compilaciones extensibles de varios proyectos y es compatible con el modelo de desarrollo en cascada , lo que determina qué partes del árbol de compilación no han cambiado y qué tareas que dependen de esas partes no necesitan reiniciarse.

Los complementos principales son para desarrollar e implementar aplicaciones Java , Groovy y Scala , pero hay complementos para otros lenguajes de programación : C++ , Swift , Kotlin y también Spring Project con Spring Boot.

Tiene su propio Gradle Daemon [4] : ​​un proceso en segundo plano para acelerar la construcción del proyecto.

Instalando Gradle

1. Vamos a la página de descarga Archivado el 31 de octubre de 2021 en Wayback Machine y elegimos un método conveniente para la instalación en su sistema operativo.

2. Configure el entorno para trabajar con Gradle configurando variables de entorno.

3. Verifique la instalación escribiendo en la línea de comando para obtener el número de versión:$ gradle -v или $ gradle -h - для помощи в работе программы.

Proyecto de muestra para Java

Veamos un proyecto de ejemplo que utiliza la estructura de directorio estándar de Maven para los códigos fuente y los recursos.

Esta estructura incluye los siguientes directorios:

  1. Cree estos archivos de proyecto java ejecutando el comando en el directorio del proyecto: gradle init
  2. Seleccione "Tipo de proyecto": aplicación - ingrese 2
  3. Seleccione "Idioma del proyecto": java - ingrese 3
  4. Proyecto conjunto o compartido - ingrese 1
  5. Seleccione "Idioma DSL": maravilloso - ingrese 1
  6. Seleccione "marco de prueba del proyecto": JUnit 4 - ingrese 1
  7. Introduzca el nombre del proyecto y el paquete (por ejemplo: mainProject).

¡Todo! El proyecto ha sido creado y ahora se puede abrir en cualquier IDE y trabajar directamente con los directorios y archivos generados.

Busquemos el archivo de compilación de Gradle de nuestro proyecto en la ruta /app/build.gradle:

complementos { // Aplique el complemento de la aplicación para agregar soporte para crear una aplicación CLI en Java. id 'aplicación' } repositorios { // Usar Maven Central para resolver dependencias. mavenCentral () } dependencias { // Usar el marco de prueba JUnit. pruebaImplementación 'junit:junit:4.13.1' // Esta dependencia es utilizada por la aplicación. implementación 'com.google.guayaba:guayaba:30.0-jre' } aplicación { // Definir la clase principal de la aplicación. claseprincipal = 'proyectoprincipal.Aplicación' }

Construyamos el proyecto usando el comando gradle build:

> compilación gradle :compilarJava :procesarRecursos :clases :frasco :armar :compilarPruebaJava :procesarRecursosPrueba :clasesdeprueba :prueba :controlar :construir CONSTRUIR CON ÉXITO

El archivo jar terminado estará en /app/build/libs: app.jar

Limpia los archivos compilados con el comando: gradle clean

Para ejecutar este jar desde la línea de comandos, agreguemos estas líneas al archivo build.gradle (la versión de Java y nuestra clase principal):

Java { sourceCompatibility = JavaVersion . VERSION_1_8 targetCompatibility = JavaVersion . VERSION_1_8 } tarro { manifiesto { atributos ( 'Clase principal' : 'mainProject.App' ) } }

Construimos el proyecto nuevamente con el comando gradle build -> vaya al directorio /app/build/libs y escriba: java -cp . -jar app.jar

Deberíamos ver el saludo "¡Hola, mundo!".

Ciclo de vida de las tareas en Gradle

Puede ver todas las tareas a través del comando: Gradle Tasks

Puede ver todas las dependencias del proyecto de la aplicación secundaria con el comando: gradle app:dependencies

El complemento de Java emula los ciclos de vida de Maven como tareas en un gráfico de dependencia acíclica dirigida para las entradas y salidas de cada tarea. En este ejemplo, la ejecución de la tarea de compilación depende del resultado de las tareas de verificación y ensamblaje . Además, la tarea de verificación depende de la prueba y el ensamblaje depende de la jarra .

Gradle también permite que los proyectos utilicen una estructura de directorios que difiere de la convención de Maven . El siguiente ejemplo considerará un proyecto donde el código fuente está en el directorio src/java en lugar de src/main/java .

construir.gradle

aplicar complemento: 'java' conjuntos de fuentes { principal { Java { srcDirs = [ 'origen/java' ] } } }


Montaje multiproyecto

Para aplicaciones que consisten en módulos, es conveniente utilizar el enfoque multiproyecto de Gradle :

  1. Cada módulo está ubicado en su propio directorio separado.
  2. Cada módulo puede incluir módulos secundarios, que se ubicarán en directorios anidados.
  3. La descripción de la estructura multiproyecto se realiza en settings.gradle en el directorio raíz del proyecto.
  4. Hay un build.gradle en el directorio raíz del proyecto que puede personalizarse a sí mismo y a los módulos secundarios.
  5. Cada módulo secundario puede tener los mismos dos archivos para configurarse a sí mismo y a sus módulos secundarios.
  6. Este enfoque le permite ejecutar tareas de manera conveniente para módulos específicos o para todo el proyecto como un todo.

Tareas principales

- Realización de tareas en la etapa de construcción ( pruebas, informes, registro, etc. / viajes a (red | servicios), en general, todo lo que puede hacer cualquier aplicación )

- Ensamblaje de bibliotecas dependientes del proyecto para la construcción, distribución del grado de acceso (como modificadores de acceso en lenguajes de programación) dentro del código de ejecución

La estructura principal del archivo build.gradle

aplicación / compilación . grado _ nudos // Bloque responsable de conectar complementos complementos { id ( "org.jetbrains.kotlin.jvm" ) versión "1.4.31" solicitud } // Principales repositorios desde donde se descargan los complementos repositorios { mavenCentral () } // Dependencias para tu proyecto dependencias { implementación ( plataforma ( "org.jetbrains.kotlin:kotlin-bom" )) // un ejemplo de cómo agregar un complemento a su proyecto implementación ( "org.jetbrains.kotlin:kotlin-stdlib-jdk8" ) implementación ( "com.google.guava:guayaba:30.1-jre" ) pruebaImplementación ( "org.jetbrains.kotlin:kotlin-test" ) implementación de prueba ( " org.jetbrains.kotlin :kotlin-test-junit" ) } // Clase principal para ejecutar el programa aplicación { claseprincipal . establecer ( "demo.AppKt" ) }

Véase también

Literatura

  • Muschko, B. y Dockter, H. Gradle en acción. - Compañía de Publicaciones Manning, 2013. - 456 p. — ISBN 9781617291302 .
  • Berglund, T. Gradle Más allá de lo básico. - O'Reilly Media, 2013. - 80 p. — ISBN 9781449373825 .
  • Berglund, T. y McCullough, M. Construcción y pruebas con Gradle. - O'Reilly Media, 2011. - 110 p. — ISBN 9781449304638 .
  • Kousen, K. Gradle para Android. - O'Reilly Media, Incorporated, 2015. - 120 p. — ISBN 9781491947029 .
  • Ikkink, H. K. Guía de implementación eficaz de Gradle . - Editorial Packt, 2012. - 350 p. — ISBN 9781849518116 .

Notas

  1. https://github.com/gradle/gradle/releases/tag/v7.5.1
  2. El proyecto de código abierto de gradle en Open Hub: página de idiomas - 2006.
  3. El proyecto de código abierto gradle en Open Hub: página de licencias - 2006.
  4. https://docs.gradle.org/current/userguide/gradle_daemon.html Archivado el 1 de noviembre de 2021 en Wayback Machine .