0% encontró este documento útil (0 votos)
89 vistas6 páginas

GRADLE

Gradle es una herramienta de automatización de compilación que usa un lenguaje específico de dominio basado en Groovy. Define proyectos y tareas, donde los proyectos contienen tareas y las tareas son piezas individuales de trabajo como compilar clases o crear JARs. Gradle también admite complementos que agregan funcionalidad como compilar código Java y define dependencias entre tareas usando un gráfico acíclico dirigido.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
89 vistas6 páginas

GRADLE

Gradle es una herramienta de automatización de compilación que usa un lenguaje específico de dominio basado en Groovy. Define proyectos y tareas, donde los proyectos contienen tareas y las tareas son piezas individuales de trabajo como compilar clases o crear JARs. Gradle también admite complementos que agregan funcionalidad como compilar código Java y define dependencias entre tareas usando un gráfico acíclico dirigido.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

CONCEPTOS BÁSICOS DE GRADLE

DSL. Un lenguaje específico de dominio (DSL) es un tipo de lenguaje informático de alcance


limitado, diseñado para abordar un problema particular dentro de un dominio de aplicación
Gradle en el DSL se basa en JAVA y groovy para declarar la configuración del proyecto
1. Groovy: Es un lenguaje de programación ágil y dinámico diseñado para la
Plataforma Java con determinadas características inspiradas en lenguajes como
Python, Ruby o Smalltalk, poniéndolas a disposición de los programadores Java
mediante una sintaxis típica de Java.
2. Java: Se basa en una programación orientada a objetos, permite ejecutar un mismo
programa en múltiples sistemas operativos y hace posible ejecutar el código en
sistemas remotos de manera segura
3. Kotlin: es un lenguaje de programación de tipo estático que corre sobre la máquina
virtual de Java y que también puede ser compilado a código fuente de JavaScript

4. Maven: Apache Maven es una potente herramienta de gestión de proyectos que se


utiliza para gestión de dependencias, como herramienta de compilación e incluso
como herramienta de documentación. Es de código abierto y gratuito. Aunque se
puede utilizar con diversos lenguajes (C#, Ruby, Scala...)
5. Apache Ant es una herramienta usada en programación para la realización de tareas
mecánicas y repetitivas, normalmente durante la fase de compilación y construcción
(build). Es similar a Make pero desarrollado en lenguaje Java y requiere la plataforma
Java.
Gradle proporciona soporte para los proyectos de compilación de ANT podemos importar un
proyecto de compilación de ANT y realizar todas sus tareas sin embargo también podemos
realizar tareas gradle basadas en ANT la integración incluye las propiedades y las rutas
gradle admite el repositorio de maven en los repositorios, los cuales están diseñados para
publicar y obtener dependencias del proyecto por lo tanto podemos seguir utilizado cada
infraestructura del repositorio disponible

Gradle se puede integrar con muchas herramientas de terceros diferentes, como IDE y
plataformas de integración continua. Aquí analizamos algunos de los más comunes y cómo
integrar su propia herramienta con Gradle.

6. android studio: Como una variante de IntelliJ IDEA, Android Studio tiene soporte
integrado para importar y construir proyectos de Gradle. También puede usar el
complemento IDEA para Gradle para ajustar el proceso de importación si es
necesario.Este IDE también tiene una extensa guía de usuario para ayudarlo a
aprovechar al máximo el IDE y Gradle.
7. Eclipse: Si desea trabajar en un proyecto dentro de Eclipse que tiene una
compilación de Gradle, debe usar el complemento Eclipse Buildship . Esto le
permitirá importar y ejecutar compilaciones de Gradle. Si necesita ajustar el proceso
de importación para que el proyecto se cargue correctamente, puede usar los
complementos de Eclipse para Gradle . Consulte el anuncio de lanzamiento
asociado para obtener detalles sobre los ajustes que puede realizar.
8. IDEA IntelliJ: IDEA tiene soporte incorporado para importar proyectos Gradle. Si
necesita ajustar el proceso de importación para que el proyecto se cargue
correctamente, puede usar el complemento IDEA para Gradle .
9. NetBeans:Agregue el complemento Gradle Support a NetBeans para importar y
ejecutar proyectos con compilaciones de Gradle.
10. Visual studio: Para desarrollar proyectos de C++, Gradle viene con un complemento
de Visual Studio .
11. código x:Para desarrollar proyectos de C++, Gradle viene con un complemento de
Xcode .
12. CLión JetBrains admite la creación de proyectos de C++ con Gradle .

Building tool: es una herramienta que nos ayuda automatizar la creación de


aplicaciones ejecutables a partir del código fuente que los desarrolladores de
software realizan en sus actividades cotidianas, tales como: compilar y vincular el
còdigo fuente del programa binario, empaquetar un programa compilado para su
distribuciòn, desplegando a sistemas y generar documentaciòn de forma útil y
ejecutable
el proceso de compilación a menudo se hace manualmente aunque la compilación
manual se puede hacer solo para proyectos pequeños por qué en proyectos
grandes es complicado hacer un seguimiento de lo que se necesita para la
construcción, en que orden y que dependencias hay en el proceso de construcción
El uso de las herramientas de automatización hace que el proceso de construcción
sea más consistente.

proyectos y tareas: gradle describe todo sobre la base de proyectos y tareas, cada
compilación en gradle contiene uno o más proyectos y estos proyectos contienen
algunas tareas

Proyecto: un proyecto representa un Jar de bibliotecas o una aplicación web,


también puede representar un zip de distribución que se ensambla a partir de los
JAR producidos por otros proyectos.
Gradle genera una instancia de la clase Project, que contendrá la configuración de
todo nuestro proyecto, las tareas, propiedades, dependencias, etc. Por defecto, este
objeto contiene un montón de propiedades configuradas (que podemos consultar
mediante gradle properties). Nosotros podemos añadir propiedades al gusto
mediante el closure ext, o utilizando un fichero de propiedades.
Tareas: las taks es una sola pieza de trabajo que realiza la compilación por ejemplo
podrías compilar clases, crear un JAR, generar un Java doc y publicar algunos en
un repositorio.
La tarea es la unidad básica de trabajo en Gradle.En Gradle produce una vuelta a la
base, utilizando un concepto que guarda mucha relación con los targets de Ant. Ant
fue la primera herramienta seria para construir proyectos en Java, y que destacaba
por su flexibilidad.
Al ejecutar una tarea, Gradle nos permite definir nuevas tareas y, además, nos
permite modificar las ya existentes de un plugin.
Cuando ejecutamos una tarea también nos permite indicar el nivel de información
que queremos que se muestre, es decir, podemos elegir si queremos que solo
muestre los errores, que solo nos muestre los avisos, o que por defecto se muestran
todos los mensajes.
Sabiendo ya que las tareas no son más que un fragmento de código que se ejecuta
cuando es requerido en el proceso de build, otras características a conocer de las
mismas son:
Las tareas pueden depender de otras tareas
Las tareas pueden tener una descripción, que es la que se muestra cuando son
listadas por gradle tasks.
Podemos invocar varias tareas en un comando gradle, y se ejecutarán en orden, por
ejemplo gradle task2 task3. Sin embargo, cada tarea se ejecutará una sola vez en
cada build.
Por último, existen en Gradle unos tipos de tareas base (algo así como tareas
abstractas, que en la jerga de Gradle se llaman “enhanced tasks”, y no son más que
una clase Groovy), que podemos utilizar para realizar tareas más complejas
añadiendo las acciones necesarias en el “configuration closure”

Un target es un contenedor de tareas y tipos de datos que cooperan para alcanzar un


estado deseado durante el proceso de construcción.Los target pueden depender de otros
objetivos y Apache Ant se asegura de que estos otros objetivos se hayan ejecutado antes
que el objetivo actual. Por ejemplo, puedes tener un objetivo para compilar y otro para crear
un distribuible. Sólo se puede construir un distribuible cuando se ha compilado primero, por
lo que el objetivo de distribución depende del objetivo de compilación.
Ant intenta ejecutar los objetivos en el atributo depends en el orden en que aparecen (de
izquierda a derecha).

para concretar:
un build consiste de 1 o más proyectos y cada proyecto consiste de 1 o más tareas
Cada compilación incluye al menos un proyecto, y cada proyecto incluye una o más
tareas
Cada archivo build.gradle representa un proyecto y las tareas se definen en el script
de compilación.
Al iniciar el proceso de compilación, Gradle ensamblará el proyecto y los objetos de
tarea en función del archivo de compilación. Un objeto de tarea contiene una serie
de objetos de acción, que se ejecutarán en secuencia más adelante.

plugin. Vamos a ir poniendo las cosas interesantes. Un plugin en Gradle no es otra cosa
que un conjunto de tareas, dependencias, propiedades, etc, que se inyectan al object
Project. Tan simple como eso.
En general, la configuración básica de Gradle permite hacer poco, y para proyectos de
verdad necesitaremos, como poco, añadir el plugin groovy o java, que añaden las tareas
que todos esperamos

Complementos: Gradle en su esencia proporciona intencionalmente muy poco para la


automatización del mundo real. Todas las características útiles, como la capacidad de
compilar código Java, se agregan mediante complementos . Los complementos agregan
nuevas tareas (p. ej ., JavaCompile ), objetos de dominio (p. ej ., SourceSet ), convenciones
(p. ej., el código fuente de Java se encuentra en src/main/java), además de ampliar objetos
centrales y objetos de otros complementos.
los complementos básicos de Gradle son especiales porque proporcionan nombres cortos,
como 'java' para el complemento principal de Java
El DSL de complementos proporciona una forma sucinta y conveniente de declarar las
dependencias de complementos.

DAG: gráfico acíclico dirigido para definir el orden de ejecución de la tarea

EL COMPLEMENTO BÁSICO

El complemento base proporciona algunas tareas y convenciones que son comunes a la


mayoría de las compilaciones y agrega una estructura a la compilación que promueve la
coherencia en la forma en que se ejecutan. Su contribución más significativa es un conjunto
de tareas de ciclo de vida que actúan como un paraguas para las tareas más específicas
proporcionadas por otros complementos y autores de compilaciones.
El complemento básico define varias tareas estándar del ciclo de vida , como build,
assembley check. Todos los complementos del lenguaje central, como el complemento de
Java , aplican el complemento base y, por lo tanto, tienen el mismo conjunto básico de
tareas de ciclo de vida.
Las tareas del ciclo de vida son tareas que no funcionan por sí mismas. Por lo general, no
tienen ninguna acción de tarea. Las tareas del ciclo de vida pueden representar varios
conceptos:
un paso de flujo de trabajo (p. ej., ejecutar todas las comprobaciones con check)
una cosa construible (por ejemplo, crear un ejecutable de depuración de 32 bits para
componentes nativos)
una tarea conveniente para ejecutar muchas de las mismas tareas lógicas (p. ej., ejecutar
todas las tareas de compilación con compileAll)
Cada dependencia declarada para un proyecto de Gradle se aplica a un ámbito específico.
Por ejemplo, algunas dependencias deben usarse para compilar el código fuente, mientras
que otras solo deben estar disponibles en tiempo de ejecución. Gradle representa el
alcance de una dependencia con la ayuda de una configuración . Cada configuración se
puede identificar con un nombre único.
Cuando declara una dependencia o una restricción de dependencia , puede proporcionar un
motivo personalizado para la declaración. Esto hace que las declaraciones de dependencia
en su secuencia de comandos de compilación y el informe de información de dependencia
sean más fáciles de interpretar.
Extensiones contribuidas
El complemento base agrega la baseextensión al proyecto. Esto permite configurar las
siguientes propiedades dentro de un bloque DSL dedicado.
convenciones en desuso El complemento base también agrega convenciones relacionadas
con la creación de archivos, como ZIP, TAR y JAR. Estos están obsoletos y reemplazados
por la extensión descrita anteriormente.
cinco cosas que debes saber sobre Gradle
Gradle es una herramienta de construcción flexible y poderosa que fácilmente puede
parecer intimidante cuando comienza por primera vez. Sin embargo, comprender los
siguientes principios básicos hará que Gradle sea mucho más fácil

1. Gradle es una herramienta de compilación de uso general


Gradle te permite construir cualquier software, porque hace pocas suposiciones sobre lo
que estás tratando de construir o cómo se debe hacer. La restricción más notable es que la
administración de dependencias actualmente solo admite repositorios y sistemas de
archivos compatibles con Maven e Ivy.

Esto no significa que tengas que trabajar mucho para crear una compilación. Gradle facilita
la creación de tipos comunes de proyectos, por ejemplo, bibliotecas de Java, al agregar una
capa de convenciones y funcionalidades prediseñadas a través de complementos . Incluso
puede crear y publicar complementos personalizados para encapsular sus propias
convenciones y crear funcionalidad.

2. Es importante comprender que Gradle evalúa y ejecuta scripts de compilación en tres


fases:
Inicialización
Configura el entorno para la compilación y determina qué proyectos participarán en él.
Configuración
Construye y configura el gráfico de tareas para la compilación y luego determina qué tareas
deben ejecutarse y en qué orden, según la tarea que el usuario desea ejecutar.
Ejecución
Ejecuta las tareas seleccionadas al final de la fase de configuración.
Estas fases forman el ciclo de vida de compilación de Gradle .
3.Gradle es extensible en más de un sentido
Sería genial si pudieras construir tu proyecto usando solo la lógica de construcción incluida
con Gradle, pero eso rara vez es posible. La mayoría de las compilaciones tienen algunos
requisitos especiales que significan que debe agregar una lógica de compilación
personalizada.
Gradle proporciona varios mecanismos que le permiten extenderlo, tales como:tareas
personalizadas,convenciones personalizadas.
4. Los scripts de compilación funcionan con una API
Es fácil ver los scripts de compilación de Gradle como código ejecutable, porque eso es lo
que son. Pero ese es un detalle de implementación: los scripts de compilación bien
diseñados describen qué pasos se necesitan para compilar el software, no cómo esos
pasos deberían hacer el trabajo. Ese es un trabajo para complementos y tipos de tareas
personalizadas.
5. El modelo central se basa en tareas

USO DEL GRAFO ACÍCLICO


En matemáticas , particularmente teoría de grafos e informática , un gráfico acíclico dirigido
( DAG ) es un gráfico dirigido sin ciclos dirigidos . Es decir, consta de vértices y aristas
(también llamados arcos ), con cada arista dirigida de un vértice a otro, de modo que seguir
esas direcciones nunca formará un bucle cerrado. Un grafo dirigido es un DAG si y solo si
puede ordenarse topológicamente, organizando los vértices como un ordenamiento lineal
que sea coherente con todas las direcciones de los bordes.

el recorrido se puede hacer de dos formas por profundidad que ir del desde el primer
camino hasta el ultimo o por amplitud teniendo en cuenta cada nivel del grafo

Gradle modela sus compilaciones como gráficos acíclicos dirigidos (DAG) de tareas
(unidades de trabajo). Lo que esto significa es que una compilación esencialmente configura
un conjunto de tareas y las conecta, en función de sus dependencias, para crear ese DAG.
Una vez que se ha creado el gráfico de tareas, Gradle determina qué tareas deben
ejecutarse en qué orden y luego procede a ejecutarlas.
Gradle tiene varias fases de construcción fijas

Este diagrama muestra dos gráficos de tareas de ejemplo, uno abstracto y otro concreto,
con las dependencias entre las tareas representadas como flechas:

Casi cualquier proceso de compilación se puede modelar como un gráfico de tareas de esta
manera, que es una de las razones por las que Gradle es tan flexible. Y ese gráfico de
tareas se puede definir mediante complementos y sus propios scripts de compilación, con
tareas vinculadas entre sí a través del mecanismo de dependencia de tareas .

Las tareas en sí consisten en:

Acciones: piezas de trabajo que hacen algo, como copiar archivos o compilar código fuente
Entradas: valores, archivos y directorios que las acciones usan o en los que operan
Salidas: archivos y directorios que las acciones modifican o generan

De hecho, todo lo anterior es opcional dependiendo de lo que deba hacer la tarea. Algunas
tareas, como las tareas estándar del ciclo de vida , ni siquiera tienen acciones. Simplemente
agregan múltiples tareas juntas como una conveniencia.
Tú eliges qué tarea ejecutar. Ahorre tiempo especificando la tarea que hace lo que necesita,
pero no más que eso. Si solo desea ejecutar las pruebas unitarias, elija la tarea que lo hace,
por lo general test. Si desea empaquetar una aplicación, la mayoría de las compilaciones
tienen una assembletarea para eso.

También podría gustarte