Gradle

De Wikipedia, la enciclopedia libre
Gradle
Informacion general
Tipo de programa build system
Desarrollador Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Groschke, Daz DeBoer, Steve Appling
Lanzamiento inicial 2007 [ 1 ]
Licencia Licencia Apache 2.0
Informacion tecnica
Programado en Java , Groovy y Kotlin
Plataformas admitidas maquina virtual Java
Versiones
Ultima version estable 8.7.0 ( info ) ( 22 de marzo de 2024 (1 mes y 29 dias))
Enlaces

Gradle es un sistema de automatizacion de construccion de codigo de software que construye sobre los conceptos de Apache Ant y Apache Maven e introduce un lenguaje especifico del dominio (DSL) basado en Groovy en vez de la forma XML utilizada por Apache Maven para declarar la configuracion de proyecto. [ 2 ] ​ Gradle utiliza un grafo aciclico dirigido ("DAG") para determinar el orden en el que las tareas pueden ser ejecutadas.

Gradle fue disenado para construcciones multi-proyecto las cuales pueden crecer para ser bastante grandes, y da apoyo a construcciones incrementales determinando inteligentemente que partes del arbol de construccion estan actualizadas, de modo que cualquier tarea dependiente a aquellas partes no necesitaran ser reejecutada.

Los plugins iniciales estan principalmente centrados en el desarrollo y despliegue en Java , Groovy y Scala , pero existen mas lenguajes y workflows de proyecto en el roadmap. [ 3 ]

Ejemplo de proyecto Java [ editar ]

Considera el caso donde la estructura de directorios Maven es usada para las fuentes utilizada para los recursos y el codigo fuente Java. Estos directorios son: src/main/java, src/main/resources, src/test/java y src/test/resources.

build.gradle

apply
 plugin:
 'java'

Ejecutar gradle build dara el siguiente resultado

> gradle build

:compileJava

:processResources

:classes

:jar

:assemble

:compileTestJava

:processTestResources

:testClasses

:test

:check

:build


BUILD SUCCESSFUL

El plugin de Java emula muchos de los ciclos de vida Maven esperados como tareas en el grafo aciclico dirigido de dependencias para las entradas y salidas de cada tarea. Para este caso sencillo, la tarea de build depende de las salidas de las tareas check y assemble . Asi mismo, check depende de test , y assemble depende de jar .

Para proyectos que no siguen las convenciones Maven, Gradle permite que la estructura de directorios sea configurada. El ejemplo siguiente podria ser usado en un proyecto que contiene codigo fuente en src/java en lugar de src/main/java (que es la convencion dictada por Maven).

build.gradle

apply
 plugin:
 'java'

sourceSets
.
main
.
java
.
srcDirs
 =
 [
'src/java'
]

Ejemplo de migracion a Ant [ editar ]

Gradle tiene una integracion muy buena con Ant, e incluso trata archivos de construccion de Ant como scripts que pueden ser directamente importados durante la construccion. El ejemplo debajo mostrado muestra un simple target Ant incorporado como tarea Gradle.

build.xml

<project>

  <target
 name=
"ant.target"
>

    <echo
 message=
"Running ant.target!"
/>

  </target>

</project>

build.gradle

ant
.
importBuild
 'build.xml'

Ejecutar gradle ant.target resultara en

> gradle ant.target

:ant.target

[ant:echo] Running ant.target!


BUILD SUCCESSFUL

Referencias [ editar ]

  1. ≪https://gradle.org/≫ (en ingles) . gradle.org . 18 de febrero de 2019.  
  2. ≪Getting Started With Gradle≫ . Petri Kainulainen . Consultado el 26 de marzo de 2016 .  
  3. ≪Getting Started · Building Java Projects with Gradle≫ . Consultado el 26 de marzo de 2016 .  

Bibliografia [ editar ]

Enlaces externos [ editar ]