Logo Studenta

Desarrollo con Gradle

¡Este material tiene más páginas!

Vista previa del material en texto

GESTION Y DESARROLLO DE 
SERVICIOS WEB 2)
M.A. Alex Pacheco Moya
alex.pacheco.moya@gmail.com
WEBSERVICES CON JAVA GRADLE
SEMANA 10
¿Qué es Gradle?
Gradle es la nueva generación de herramientas de construcción 
automatizadas de proyectos, diseñado para superar las 
limitaciones de Maven. Gradle es software libre diseñado para 
construcciones multi-proyecto los cuales pueden pueden llegar a 
ser caóticos. Gradle basa la construcción de proyectos en 
algunos conceptos de Apache Ant y Apache Maven, cambiando 
la configuración de forma XML, a un lenguaje específico de 
dominio (Kotlin DSL). También utiliza un grafo acíclico dirigido 
(DAG) para determinar la secuencia en que se construirá el 
proyecto.
https://jugnicaragua.org/primeros-pasos-con-gradle/
¿Qué es Gradle?
• Gradle es una herramienta de
automatización de la construcción de
nuestro código que bebe de las
aportaciones que han realizado
herramientas como ant y maven pero
intenta llevarlo todo un paso mas allá.
Para empezar se apoya en Groovy y
en un DSL (Domain Specific
Language) para trabajar con un
lenguaje sencillo y claro a la hora de
construir el build comparado con
Maven
https://www.arquitecturajava.com/que-es-gradle/
¿Qué es Gradle?
• Gradle, es una herramienta que permite la automatización 
de compilación de código abierto, la cual se encuentra 
centrada en la flexibilidad y el rendimiento. 
• Los scripts de compilación de Gradle se escriben utilizando 
Groovy o Kotlin DSL (Domain Specific Language).
https://openwebinars.net/blog/que-es-gradle/
¿Qué es un lenguaje específico de 
dominio (DSL)?
Es un lenguaje de programación que provee una técnica para resolver 
un problema en específico En el caso de Gradle utiliza sentencias de 
Groovy y Kotlin para la construcción de proyectos de software.
En desarrollo de software e ingeniería de dominio, un lenguaje 
específico de dominio, o "lenguaje específico del dominio", (en inglés 
domain-specific language, DSL) es un lenguaje de programación o 
especificación dedicado a resolver un problema en particular, 
representar un problema específico y proveer una técnica para 
solucionar una situación particular. 
https://jugnicaragua.org/primeros-pasos-con-gradle/
https://es.wikipedia.org/wiki/Lenguaje_espec%C3%ADfico_de_dominio
Groovy
• Apache Groovy es un lenguaje de programación dinámico 
orientado a objetos para la máquina virtual Java (JVM).
• Groovy es un potenciador de Java porque le facilita una mayor 
flexibilidad e, incluso, la introducción de características 
especiales a las aplicaciones (se pueden mejorar las que ya 
estén desarrolladas o bien hacerlas desde cero). 
• Groovy es una sintaxis parecida a Java, pero con la facilidad de 
otros lenguajes más moldeables como Python y Ruby
Características de Gradle
Algunas características de Gradle que podemos destacar son las siguientes:
• Depuración colaborativa: Permite compartir los resultados de la compilación para 
resolver en equipo de forma eficiente posibles problemas que aparezcan.
• Construcción incremental: Valida en el proceso de compilación si la entrada, salida 
o implementación de una tarea ha cambiado, en caso de no existir algún cambio la 
considera actualizada y no se ejecuta.
• Diseño de repositorio personalizado: Podremos tratar prácticamente cualquier 
estructura de directorios del sistema de archivos como un repositorio de Artifacts.
• Dependencias transitivas: Es uno de los principales beneficios que ofrece al utilizar 
la gestión de dependencias ya que se encarga de descargar y administrar las 
dependencias transitivas.
https://openwebinars.net/blog/que-es-gradle/
Más Características de Gradle..
• Soporte a Groovy y Scala incorporado: Compatibilidad con los proyectos de Groovy, 
permitiendo trabajar con código Groovy o código Scala e inclusive desarrollar 
código mixto Java y Groovy o Java y Scala.
• Compilación incremental para Java: En caso de que el código fuente o la ruta de 
clase cambien, Gradle cuenta con la capacidad para detectar todas las clases que se 
vean afectadas por dicho cambio y procederá a recompilarlas.
• Embalaje y distribución de JAR, WAR y EAR: Cuenta con herramientas para 
empaquetar el código basado en JVM (Java Virtual Machine) en archivos de archivo 
comunes.
• Integración con Android Studio: Android Studio no cuenta con un generador 
interno, sino que delega todas las tareas de compilación en Gradle, garantizando la 
corrección en todas las construcciones, ya sea que se ejecuten desde Android 
Studio, la línea de comandos o un servidor de construcción de integración continua.
https://openwebinars.net/blog/que-es-gradle/
Caracteristicas de Gradle
https://openwebinars.net/blog/que-es-gradle/
Complementos Gradle
• Gradle permite construir desde microservicios hasta aplicaciones 
móviles, puede ser utilizado por pequeñas startups como por grandes 
empresas, ya que ayuda a los equipos a desarrollar, automatizar y 
entregar software de calidad en un menor tiempo (dependiendo de 
su complejidad y planificación previa del proceso de desarrollo).
• Esta herramienta cuenta con una gran variedad de complementos o 
plugins que ayudan agilizar la construcción, entre los cuales 
destacamos los siguientes:
https://openwebinars.net/blog/que-es-gradle/
https://openwebinars.net/blog/microservicios-que-son/
Complementos Gradle
• javamuc.gradle-semantic-build-versioning: Proporciona soporte 
para el versionado semántico de las compilaciones, es fácil de 
usar y configurar.
• io.freefair.maven-publish-war: Permite crear una publicación de 
mavenWeb.
• io.freefair.maven-publish-java: Crea una publicación 
mavenJava.
• org.mozilla.rust-android-gradle.rust-android: Un complemento 
que ayuda a construir bibliotecas Rust JNI con Cargo para su 
uso en proyectos de Android.
Más Complementos Gradle…
• net.wooga.build-unity: Este complemento proporciona tareas 
para exportar proyectos de plataforma desde los proyectos de 
Unity3D.
• de.db.vz.msintplugin: Este complemento nos permitirá ejecutar 
pruebas de integración de microservicio con docker.
• com.bmuschko.docker-remote-api: Nos facilita la gestión de 
imágenes y contenedores Docker.
• com.google.cloud.tools.jib: Crea un contenedor para tu 
aplicación Java.
Instalación de Gradle
Pre-instalación (Requisitos)
Para poder ejecutar Gradle es necesario tener instalado JDK 8 o 
superior. Comencemos verificando la versión de Java que tenemos 
instalado, ejecutando la siguiente instrucción:
java –versión
veremos algo así:
openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Debian-2, mixed mode, sharing)
Instalación Manual de Gradle
 
1. Descargamos los binarios desde la página oficial de Gradle.
2. Creamos una carpeta(directorio) donde almacenaremos los binarios.
En sistema Windows:
md c:gradle 
3. Descomprimimos el archivo que contiene los binarios. Luego se copian a la carpeta creada.
4. Se agrega al sistema la ubicación de los binarios.
En sistema Windows:
set PATH=%PATH%;%c:gradlegradle-6.0.1%bin 
5. Verificamos la instalación.
gradle -v
------------------------------------------------------------
Gradle 6.0.1
------------
https://jugnicaragua.org/primeros-pasos-con-gradle/
Gradle en IDES
En algunos IDEs, como 
Eclipse 2019-9, Netbeans 
11.2 y IntelliJ IDEA 2019.2, 
cuentan con integración para 
trabajar con Gradle, a 
continuación veremos 
imágenes de cómo podemos 
crear proyectos con Gradle 
desde los IDEs.
Gradle en NetBeans
¿Cómo se organiza la construcción 
en Gradle ?
Gradle se organiza en proyectos y tareas, en donde los 
proyectos puede ser un producto de lo que te encuentres 
haciendo, como una librería jar, una aplicación web o un archivo 
ZIP de distribución, etc. . Cada proyecto está compuesto por una 
o más tareas.
Las tareas representan la parte atómica en una construcción. 
Gradle proporciona una biblioteca de tareas, donde cada tarea 
realiza algunaoperación básica, como compilar, ejecutar jar, 
copiar archivos, crear archivos jar, entre otras.
https://jugnicaragua.org/primeros-pasos-con-gradle/
Tareas Gradle
Ente las tareas de la biblioteca Gradle encontramos la herramientas para listar los 
proyectos y tareas. Para ello, desde una terminal digitamos la siguiente sentencia:
gradle -q tasks
Proyecto Gradle en NetBeans
Java with Gradle
New Java Application with Gradle
Payara Server
Index.html
run Project - Output
index.html en el navegador
REFERENCIAS
• The Definitive Gradle Guide for NetBeans IDE
https://dzone.com/articles/definitive-gradle-guide-for-netbeans
• Primeros pasos con Gradle en proyectos Java
https://jugnicaragua.org/primeros-pasos-con-gradle/
• Blog sobre Java EE
https://www.arquitecturajava.com/que-es-gradle/
• Qué es Gradle: La herramienta para ser más productivo desarrollando
https://openwebinars.net/blog/que-es-gradle/
https://dzone.com/articles/definitive-gradle-guide-for-netbeans
https://jugnicaragua.org/primeros-pasos-con-gradle/
https://www.arquitecturajava.com/que-es-gradle/
https://openwebinars.net/blog/que-es-gradle/
“No eres muy bueno, si no eres mejor; 
de lo que imaginan tus amigos”
Johan Kaspar Lavater
	Diapositiva 1
	Diapositiva 2: GESTION Y DESARROLLO DE SERVICIOS WEB 2)
	Diapositiva 3: WEBSERVICES CON JAVA GRADLE
	Diapositiva 4: ¿Qué es Gradle?
	Diapositiva 5: ¿Qué es Gradle?
	Diapositiva 6: ¿Qué es Gradle?
	Diapositiva 7: ¿Qué es un lenguaje específico de dominio (DSL)?
	Diapositiva 8: Groovy
	Diapositiva 9: Características de Gradle
	Diapositiva 10: Más Características de Gradle..
	Diapositiva 11: Caracteristicas de Gradle
	Diapositiva 12: Complementos Gradle
	Diapositiva 13: Complementos Gradle
	Diapositiva 14: Más Complementos Gradle…
	Diapositiva 15: Instalación de Gradle
	Diapositiva 16: Instalación Manual de Gradle
	Diapositiva 17: Gradle en IDES
	Diapositiva 18: Gradle en NetBeans
	Diapositiva 19: ¿Cómo se organiza la construcción en Gradle ?
	Diapositiva 20: Tareas Gradle
	Diapositiva 21: Proyecto Gradle en NetBeans
	Diapositiva 22: Java with Gradle
	Diapositiva 23: New Java Application with Gradle
	Diapositiva 24: Payara Server
	Diapositiva 25: Index.html
	Diapositiva 26: run Project - Output
	Diapositiva 27: index.html en el navegador
	Diapositiva 28: REFERENCIAS
	Diapositiva 29

Continuar navegando