Logo Studenta

Tutorial Gradle JAVA

¡Estudia con miles de materiales!

Vista previa del material en texto

Docente: 
M.A. Alex Pacheco Moya 
Tutorial de Gradle 
JAVA 
CONTENIDO 
1. La guía definitiva 
2. Visión general 
3. Estructura del proyecto 
4. Menú Contextual 
5. Tareas personalizadas 
 
S10 
 
 
M.A. Alex Pacheco Pagina #2 
Instituto de Educación Superior Privado El Buen Pastor 
 
 
 
 
 
 
 
 
 
 
 
 
 
Tutorial Gradle 
 
 
 
M.A. Alex Pacheco Pagina #3 
Instituto de Educación Superior Privado El Buen Pastor 
1. La guía definitiva de Gradle para NetBeans IDE 
¡Gradle es una herramienta de construcción como Ant y Maven solo que 
mucho, mucho mejor! 
 
Gradle es una herramienta de compilación como Ant y Maven (solo que es mejor :)). Si aún no 
conoce Gradle, debe visitar http://www.gradle.org, ya que tienen una gran cantidad de (buena) 
documentación. 
 
2. Visión general 
 
El complemento (Plugin) se basa en gran medida en la API de herramientas de Gradle. Esta API 
de herramientas se usa para descubrir la estructura de su proyecto y también se usa para ejecutar 
tareas. En ambos casos, la API de herramientas se basa en los servicios del llamado demonio 
Gradle. El demonio Gradle es un proceso Java en segundo plano que la API de herramientas 
inicia automáticamente si no se está ejecutando. 
 
Una vez iniciado, un daemon de Gradle vivirá durante 3 horas de forma predeterminada (y no 
puede ajustar el valor predeterminado en la API de herramientas). Lo que es relevante para usted 
es que este demonio no es realmente un proceso ligero (por defecto usa -Xmx1024m). Sin 
embargo, es posible generar más demonios sin darse cuenta: si el demonio está actualmente 
ocupado (ejecutando una de sus tareas o cargando un modelo para el complemento) y usted 
intenta ejecutar una tarea, se generará un nuevo demonio y permanecerá con usted durante 3 
horas (a menos que elimine a la fuerza el proceso daemon, que es un proceso java). 
 
Además, si ajusta los argumentos de JVM, Gradle podría generar un nuevo demonio simplemente 
porque el que se está ejecutando se inició con diferentes argumentos (no lo hará si considera 
que sus argumentos están bien con el demonio que se está ejecutando actualmente). El 
complemento hará todo lo posible para no ejecutar tareas simultáneamente si no es necesario, 
pero de todos modos debe tener en cuenta que el demonio Gradle se ejecuta en segundo plano 
incluso después de cerrar NetBeans. 
 
3. Project Structure 
 
La estructura del proyecto del proyecto abierto (en la ventana "Proyectos") debe ser similar a 
los proyectos Java habituales (tenga en cuenta que este complemento solo admite proyectos 
basados en Java). Algo que podría ver es que si el proyecto que abrió contiene subproyectos 
(por ejemplo, ha abierto el proyecto raíz), tendrá "Subproyectos". 
 
El nodo "Subproyectos" se puede desplegar para explorar todos los subproyectos y abrirlos 
desde aquí si lo desea. Personalmente, normalmente abro el proyecto raíz y lo uso para abrir 
los subproyectos que necesito actualmente. El nodo "Crear scripts" también es algo especial 
para este complemento: contiene los archivos .gradle que se encuentran en el directorio del 
proyecto (no busca recursivamente, si necesita otros archivos, debe usar la pestaña 
"Archivos"). Otros nodos son lo que sugiere su nombre. 
 
 
M.A. Alex Pacheco Pagina #4 
Instituto de Educación Superior Privado El Buen Pastor 
 
 
 
 
 
 
 
 
 
 
Una vez que haya tenido suficiente de la pestaña "Proyectos" o vea archivos con errores a pesar 
de que deberían compilarse, diríjase a las propiedades del proyecto. Las propiedades del 
proyecto se pueden abrir desde el menú contextual del nodo del proyecto: aquí seleccione 
"Propiedades". Hay muchas cosas que puede configurar aquí, pero ante todo, debe saber cómo 
se almacenan estas propiedades: todos los subproyectos en un proyecto Gradle comparten las 
mismas propiedades. Esta fue una decisión de diseño para evitar demasiadas configuraciones 
(probablemente innecesarias). 
 
El perfil predeterminado se almacena junto al archivo "settings.gradle" del proyecto (si no hay 
ninguno, entonces en el directorio del proyecto) y se denomina ".nb-gradle-properties". Este 
archivo fue diseñado para que, por lo general, pueda enviarlo de manera segura a su VCS (otros 
IDE simplemente lo ignorarán). Hay otro directorio ubicado junto a ".nb-gradle-properties" llamado 
".nb-gradle". Esto podría almacenar archivos que quizás no desee enviar a su VCS. Aunque 
actualmente, solo los perfiles adicionales que cree se almacenarán aquí. Entonces, al 
comprender esto, debe ajustar las propiedades del proyecto. Esto incluye propiedades que este 
complemento podría no ser capaz de deducir del script de compilación y muchas otras. Para 
obtener información detallada sobre las propiedades, lea la guía más detallada. 
 
4. Menú contextual del Proyecto 
 
 
 
 
M.A. Alex Pacheco Pagina #5 
Instituto de Educación Superior Privado El Buen Pastor 
 
Puede encontrar los comandos de compilación habituales aquí (por ejemplo: compilar, probar). 
Lo que es importante saber es que cada comando de compilación está asignado a un comando 
Gradle específico y cada uno de ellos es completamente personalizable. Debe leer la guía de 
comandos de compilación. Lo que es realmente importante saber aquí es que el complemento 
no reconocerá los cambios en el script de compilación automáticamente. 
Si ha cambiado el script de compilación del proyecto, debe hacer clic en "Recargar proyecto" en 
el menú contextual. Tenga en cuenta que no es necesario volver a cargar un proyecto después 
de cada cambio en el script de compilación. 
Por lo general, solo necesita volver a cargar si ha ajustado las dependencias del proyecto 
(recargar el proyecto no tiene ningún efecto en la ejecución de tareas). El complemento también 
hará todo lo posible para recargar proyectos según este proyecto (y están en la misma 
compilación de proyectos múltiples) y las dependencias. En realidad, tal como está 
implementado actualmente, el complemento recarga cada proyecto en la misma compilación de 
varios proyectos. 
 
5. Tareas personalizadas 
Puede ejecutar y guardar tareas que tiene la intención de usar con frecuencia. Estas tareas se 
pueden agregar al elemento "Tareas personalizadas" del menú contextual del proyecto. Las 
tareas personalizadas se almacenan con las propiedades del proyecto (en el mismo archivo), 
por lo que, al igual que con otras propiedades, se comparten entre los proyectos de una 
compilación de varios proyectos. Lea la guía más detallada de tareas personalizadas. 
 
6. 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 accesible y te volverás experto con la 
herramienta antes de que te des cuenta. 
 
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. 
 
 
 
M.A. Alex Pacheco Pagina #6 
Instituto de Educación Superior Privado El Buen Pastor 
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. El modelo central se basa en tareas 
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 configuraun 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. 
 
Este diagrama muestra dos gráficos de tareas de ejemplo, uno abstracto y otro concreto, con 
las dependencias entre las tareas representadas como flechas: 
Figura 1. Dos ejemplos de gráficos de tareas de Gradle 
 
Figura 1. Dos ejemplos de gráficos de tareas de Gradle 
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. 
 
 
 
M.A. Alex Pacheco Pagina #7 
Instituto de Educación Superior Privado El Buen Pastor 
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. 
3. Gradle tiene varias fases de construcción fijas 
Es importante comprender que Gradle evalúa y ejecuta scripts de compilación en tres 
fases: 
 
1. Inicialización 
Configura el entorno para la compilación y determina qué proyectos participarán en él. 
2. 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. 
3. 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. 
Los scripts de compilación bien diseñados consisten principalmente en una configuración 
declarativa en lugar de una lógica imperativa. Esa configuración es comprensiblemente 
evaluada durante la fase de configuración. Aun así, muchas de estas compilaciones 
también tienen acciones de tareas, por ejemplo, a través de los bloques doLast {} y doFirst 
{}, que se evalúan durante la fase de ejecución. Esto es importante porque el código 
evaluado durante la fase de configuración no verá los cambios que ocurren durante la fase 
de ejecución. 
Otro aspecto importante de la fase de configuración es que todo lo involucrado en ella se 
evalúa cada vez que se ejecuta la compilación. Por eso es una buena práctica evitar 
trabajos costosos durante la fase de configuración. Los escaneos de compilación pueden 
ayudarlo a identificar tales puntos de acceso, entre otras cosas. 
 
 
 
 
 
M.A. Alex Pacheco Pagina #8 
Instituto de Educación Superior Privado El Buen Pastor 
4. 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: 
Tipos de tareas personalizadas. 
Cuando desee que la compilación realice un trabajo que una tarea existente no 
puede realizar, simplemente puede escribir su propio tipo de tarea. Por lo general, 
es mejor colocar el archivo de origen para un tipo de tarea personalizada en el 
directorio buildSrc o en un complemento empaquetado. Luego, puede usar el tipo 
de tarea personalizada como cualquiera de las proporcionadas por Gradle. 
Acciones de tareas personalizadas. 
Puede adjuntar una lógica de compilación personalizada que se ejecute antes o 
después de una tarea a través de los métodos Task.doFirst() y Task.doLast(). 
Propiedades adicionales en proyectos y tareas. 
Esto le permite agregar sus propias propiedades a un proyecto o tarea que luego 
puede usar desde sus propias acciones personalizadas o cualquier otra lógica de 
compilación. Incluso se pueden aplicar propiedades adicionales a tareas que usted 
no crea explícitamente, como las creadas por los complementos principales de 
Gradle. 
Convenciones personalizadas. 
Las convenciones son una forma poderosa de simplificar las compilaciones para 
que los usuarios puedan entenderlas y usarlas más fácilmente. Esto se puede ver 
con compilaciones que usan estructuras de proyecto estándar y convenciones de 
nomenclatura, como las compilaciones de Java. Puede escribir sus propios 
complementos que proporcionen convenciones; solo necesitan configurar valores 
predeterminados para los aspectos relevantes de una compilación. 
Un modelo personalizado. 
Gradle le permite introducir nuevos conceptos en una compilación más allá de las 
tareas, los archivos y las configuraciones de dependencia. Puede ver esto con la 
mayoría de los complementos de idioma, que agregan el concepto de conjuntos 
de fuentes a una compilación. El modelado apropiado de un proceso de 
compilación puede mejorar en gran medida la facilidad de uso y la eficiencia de 
una compilación. 
 
 
 
M.A. Alex Pacheco Pagina #9 
Instituto de Educación Superior Privado El Buen Pastor 
5. 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 tipos de tareas personalizadas y complementos. 
Sin embargo, hay un área en la que es útil ver un script de compilación como código ejecutable: 
comprender cómo la sintaxis del script de compilación se asigna a la API de Gradle. La 
documentación de la API, formada por Groovy DSL Reference y Javadocs, enumera métodos y 
propiedades, y hace referencia a cierres y acciones. ¿Qué significa esto en el contexto de un 
script de compilación? Consulte Groovy Build Script Primer para conocer la respuesta a esa 
pregunta y poder hacer un uso eficaz de la documentación de la API. 
 
---------------------------------------------------- 
 
 
Referencia: 
 
• The Definitive Gradle Guide for NetBeans IDE 
https://dzone.com/articles/definitive-gradle-guide-for-netbeans 
 
• What is Gradle? 
https://docs.gradle.org/current/userguide/what_is_gradle.html 
 
https://dzone.com/articles/definitive-gradle-guide-for-netbeans
https://docs.gradle.org/current/userguide/what_is_gradle.html

Continuar navegando

Materiales relacionados

223 pag.
scala-language-es 26

SIN SIGLA

User badge image

matiasrivero1561232

29 pag.
Desarrollo con Gradle

San Marcos

User badge image

Rosmery Salamanca

231 pag.
TFM-G 800

SIN SIGLA

User badge image

gustavocantillo916

30 pag.
CREACION DE WEB SERVICE Javas

San Marcos

User badge image

Rosmery Salamanca