Groovy Tutorial de guión para principiantes
⚡ Resumen inteligente
Groovy Script es un lenguaje orientado a objetos para el Java plataforma que compila a bytecode de JVM. Agrega tipo dinámicoping, cierres y sintaxis concisa para Javay alimenta Jenkins tuberías, Gradle construye y SoapUI afirmaciones.

¿Qué es Groovy ¿Texto?
APACHE Groovy es un orientado a objetos, Java lenguaje de programación compatible con la sintaxis creado para el Java plataforma. Este lenguaje dinámico tiene muchas características que son similares a PythonRuby, Smalltalk y Perl. Groovy El código fuente se compila en Java bytecode, por lo que se ejecuta en cualquier plataforma donde se pueda Java La máquina virtual está instalada. Groovy También realiza mucho trabajo entre bastidores, lo que hace que se sienta más ágil y dinámico que simplemente Java.
A Groovy guión es simplemente un .groovy archivo que contiene declaraciones que Groovy se envuelve en una clase generada antes de ejecutarlo. Por eso puedes ejecutar un archivo de una sola línea sin escribir una clase o un main método. Groovy Por lo tanto, puede utilizarse como lenguaje de scripting para el Java plataforma al tiempo que sigue ofreciendo las capacidades empresariales de JavaAgrega características de productividad como soporte DSL, cierres y tipo dinámico opcionalping. A diferencia de otros idiomas, está diseñado como un complemento para Java, no un sustituto para ello.
💡 Consejo: Groovy La versión 5.0 es la línea de lanzamiento estable actual y está dirigida a JDK 11 y versiones posteriores. Groovy La versión 4.0 sigue estando disponible para proyectos JDK 8, y Groovy La versión 6.0 aún está en fase alfa para JDK 17. Consulta siempre la tabla de requisitos del sistema en la página de descarga oficial antes de elegir una versión.
Por qué Groovy?
Estas son las principales razones por las que deberías usar y aprender Groovy:
- Groovy Es un lenguaje ágil y dinámico.
- Se integra a la perfección con todos los sistemas existentes. Java objetos y bibliotecas.
- Se siente fácil y natural Java desarrolladores.
- El código es más conciso y más significativo que el equivalente. Java código.
- Puedes usarlo tanto o tan poco como quieras en el interior. Java aplicaciones.
- Funciona con el estándar Java Virtual Machine, por lo que no se requiere un entorno de ejecución independiente.
Groovy Nuestra historia
- 2003: Iniciado por James S.tracHan y Bob McWhirter.
- 2004: Presentado a la Java Proceso comunitario como JSR 241, que posteriormente fue retirado.
- 2005: Traído de vuelta tracPor Jeremy Rayner y Guillaume Laforge.
- 2007: Groovy 1.0 lanzado.
- 2012: Groovy 2.0 lanzado.
- 2014: Groovy La versión 2.3 se lanzó con soporte oficial para JDK 8.
- 2015: Groovy se convirtió en un proyecto de alto nivel en Apache Software Foundation.
- 2022: Groovy 4.0 lanzado, con las coordenadas de Maven moviéndose a
org.apache.groovy. - 2025: Groovy Versión 5.0 disponible para JDK 11 y versiones posteriores.
Caracteristicas de Groovy
- Literales de lista, mapa, rango y expresión regular.
- Multimétodos (despacho de métodos en tiempo de ejecución) y metaprogramación.
- Groovy Las clases y los scripts suelen almacenarse en
.groovyarchivos. - Los guiones contienen Groovy declaraciones sin ninguna declaración de clase.
- Los scripts también pueden contener definiciones de métodos fuera de las definiciones de clases.
- Groovy El código se puede compilar e integrar completamente con un sistema tradicional. Java .
- Soporte a nivel de lenguaje para mapas, listas y expresiones regulares.
- Soporte para cierres, tipo dinámicopingy el protocolo de meta-objeto.
- Compatibilidad con tipos estáticos y dinámicosping, además de la sobrecarga del operador.
- Comprobación de tipos estáticos opcional a través de la
@TypeCheckedy@CompileStaticanotaciones.
Cómo instalar Groovy
Paso 1) Asegúrate de que tienes Java instalado.
Paso 2) Vaya al https://groovy.apache.org/download.html y haga clic en el Windows Enlace del instalador.
Nota: También puedes instalar Groovy desde el archivo Zip binario, a través de un gestor de paquetes como SDKMAN!, Homebrew, Scoop o Chocolatey, o como un complemento para su Java IDE. En este Groovy En el recorrido nos ceñiremos a la Windows instalador.
Paso 3) Ejecuta el instalador descargado. Selecciona el idioma y haz clic en Aceptar.
Paso 4) En la pantalla de bienvenida, haga clic en SIGUIENTE.
Paso 5) Acepte los términos de la licencia.
Paso 6) Seleccione los componentes que desea instalar y haga clic en SIGUIENTE.
Paso 7) Seleccione el directorio de instalación y haga clic en SIGUIENTE.
Paso 8) Seleccione la carpeta Menú Inicio y haga clic en SIGUIENTE.
Paso 9) Una vez finalizada la instalación, deje las rutas con sus valores predeterminados y haga clic en SIGUIENTE.
Paso 10) Confirme las opciones de asociación de archivos y haga clic en SIGUIENTE.
Paso 11) En el menú Inicio, busque Groovy Consola para confirmar la instalación.
⚠️ Advertencia: El Windows El instalador es un artefacto aportado por la comunidad, no una versión oficial de Apache. Si su organización requiere descargas firmadas de Apache, utilice la distribución binaria Zip y verifique su .asc firma y .sha256 Suma de verificación en su lugar.
Groovy Hola mundo ejemplo
Supongamos que quieres imprimir la cadena simple “Hola Mundo” en JavaEl código se vería así.
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Salida:
Hello World
El código anterior es válido en ambos Java y Groovy, porque Groovy acepta casi todos Java sintaxis. La ventaja con Groovy La ventaja es que puedes prescindir de la declaración de clase, el método público y la llamada a print completa, y conseguir el mismo resultado con una sola línea.
println "Hello World"
Salida:
Hello World
- No es necesario un punto y coma.
- No hay necesidad de una clase o una
mainmétodo. System.out.printlnse reduce aprintln.
Groovy Variables
In Java, el enlace estático es obligatorio, lo que significa que el tipo de una variable debe declararse de antemano.
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
Salida:
104
En el ejemplo anterior, el tipo de la variable se declara de antemano utilizando la palabra clave intSi quisieras declarar un número de punto flotante, usarías la palabra clave float or double.
Si intenta asignar un valor de cadena a un int (descomente la línea 5), obtendrá el siguiente error de compilación.
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
Por el contrario, los Groovy admite ty dinámicopingLas variables se definen utilizando la palabra clave defy no es necesario declarar el tipo con antelación. El entorno de ejecución determina el tipo de variable, e incluso se puede cambiar posteriormente.
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Salida:
class java.lang.Integer class java.lang.String
In Groovy También puedes crear cadenas de texto de varias líneas. Solo asegúrate de encerrar la cadena entre comillas triples.
def x = """Groovy at Guru99""" println x
Salida:
Groovy at Guru99
Nota: Aún puedes usar tipos explícitos como byte, short, int, y long in GroovyPero una vez que declaras el tipo explícitamente, no puedes cambiarlo dinámicamente.
int x = 104 println x x = "Guru99"
Salida:
104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
at jdoodle.run(jdoodle.groovy:3)
Command exited with non-zero status 1
Groovy Operatoros
Un operador es un símbolo que le indica al compilador que realice una manipulación matemática o lógica específica. Groovy Admite las siguientes cinco familias de operadores.
- Operadores aritméticos: agregar (+), subtract (-), multiplicar (*), dividir (/), módulo (%), incremento (++), decremento (–).
- Operadores relacionales: igual a (==), distinto de (!=), menor que (<), menor o igual que (<=), mayor que (>), mayor o igual que (>=).
- Operadores logicos: y (&&), o (||), no (!).
- Operadores bit a bit: y (&), o (|), disyunción exclusiva (^), complemento (~).
- Operadores de Asignación: asignar (=) y las formas compuestas (+=), (-=), (*=), (/=), (%=).
Groovy agrega algunos operadores que Java no lo tiene, y eliminan gran parte del código repetitivo de verificación de nulos.
| Operator | Mareas Ideales para Lecciones |
|---|---|
| ?. | Navegación segura. Devuelve null en lugar de lanzar una NullPointerException cuando el lado izquierdo es null. |
| ?: | Operador Elvis. Devuelve el lado izquierdo si es verdadero, de lo contrario devuelve el lado derecho. |
| <=> | Operador de nave espacial. Delega en compareTo y es útil dentro de cierres de ordenación. |
| ==~ | Coincidencia de expresiones regulares. Devuelve verdadero solo cuando toda la cadena coincide con el patrón. |
Groovy bucles
In Java, definirías un bucle de conteo de la siguiente manera.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
Salida:
0 1 2 3 4 5
Puede lograr el mismo resultado en Groovy con el upto método, que incluye ambos límites.
0.upto(5) { println "$it" }
Salida:
0 1 2 3 4 5
Aquí it es el parámetro implícito del cierre, y contiene el valor de la iteración actual. Considere el siguiente código.
2.upto(4) { println "$it" }
Salida:
2 3 4
También puede utilizar la función times método. Siempre comienza en 0 y se detiene uno antes del número en el que lo llamas, por lo que necesitas 6 para imprimir del 0 al 5.
6.times { println "$it" }
Salida:
0 1 2 3 4 5
Ahora supongamos que quieres imprimir 0, 2 y 4 con un Java en bucle.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
Salida:
0 2 4
Puede utilizar las opciones step método para obtener el mismo resultado. El segundo argumento es el incremento y el primero es un límite superior exclusivo.
0.step(5, 2) { println "$it" }
Salida:
0 2 4
Groovy Toma de Decisiones
Groovy reutiliza el Java declaraciones condicionales y añade una flexibilidad mucho mayor. switchLa tabla que aparece a continuación resume las opciones.
| Comunicado | Mareas Ideales para Lecciones |
|---|---|
| si la declaración | Como en JavaEl cuerpo de la instrucción if se ejecuta cuando la condición es verdadera. |
| Sentencia if/else | La condición de la instrucción if se evalúa primero. Si es verdadera, se ejecutan las instrucciones del bloque if y se omite el bloque else. Si es falsa, se ejecutan las instrucciones del bloque else. |
| Sentencia if anidada | Se utiliza cuando necesitas comprobar una condición adicional dentro de un bloque if. |
| declaración de cambio | Una cadena anidada de if-else se vuelve ilegible cuando hay muchas condiciones. La instrucción switch hace que la misma lógica sea más fácil de leer. GroovyUna etiqueta de caso puede ser un valor, una clase, un rango, una expresión regular o un cierre. |
| Sentencia switch anidada | Groovy También permite colocar una instrucción switch dentro de otra. |
Groovy Lista
Una estructura de lista le permite almacenar una colección de elementos de datos. GroovyUna lista contiene una secuencia de referencias a objetos y conserva la posición de cada elemento en dicha secuencia. Un literal de lista se escribe como una serie de objetos separados por comas y encerrados entre corchetes.
Ejemplos de Groovy liza:
- Una lista de cadenas:
['Angular', 'Nodejs'] - Lista de referencias a objetos mixtos:
['Groovy', 2, 4, 2.6] - Una lista de valores enteros:
[16, 17, 18, 19] - Una lista vacía:
[]
Los siguientes métodos de lista están disponibles en Groovy.
| Método | Mareas Ideales para Lecciones |
|---|---|
| añadir() | Agrega un nuevo valor al final de la lista. |
| contiene () | Devuelve verdadero si la lista contiene un valor determinado. |
| get () | Devuelve el elemento en la posición indicada. |
| esta vacio() | Devuelve verdadero si la lista no contiene elementos. |
| menos() | Crea una nueva lista compuesta por los elementos de la original, excluyendo aquellos especificados en la colección dada. |
| más() | Crea una nueva lista compuesta por los elementos de la lista original junto con los de la colección dada. |
| popular() | Elimina el último elemento de la lista y lo devuelve. |
| eliminar() | Elimina el elemento en la posición indicada. |
| contrarrestar () | Crea una nueva lista que invierte los elementos de la lista original. |
| Talla() | Devuelve el número de elementos de la lista. |
| ordenar() | Devuelve una copia ordenada de la lista. |
Considera lo siguiente Groovy Ejemplo de script.
def y = ["Guru99", "is", "Mejores", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Salida:
[Guru99, is, Mejores, for, Groovy] true Mejores Learning
La primera línea imprime la lista original de cinco elementos, porque add() aún no se ha ejecutado. get(2) regresa “Mejores” desde Groovy Las listas están indexadas desde cero y pop() Devuelve “Aprendizaje” porque ese elemento se agregó al final.
Groovy Mapas
A Groovy Un mapa es una colección de pares clave-valor. Las claves no necesitan comillas cuando son identificadores simples, lo que hace que los literales de mapa sean muy compactos.
Ejemplos de Groovy mapas:
[tutorial: 'Java', language: 'Groovy']es una colección de dos pares clave-valor.[:]representa un mapa vacío.
Aquí hay una lista de los métodos de mapa disponibles en Groovy.
| Método | Mareas Ideales para Lecciones |
|---|---|
| contiene clave() | Comprueba si el mapa contiene la clave especificada. |
| get () | Busca la clave en el mapa y devuelve el valor correspondiente. Si no encuentra ninguna entrada, devuelve null. |
| juego de llaves() | Devuelve el conjunto de claves en el mapa. |
| poner() | Asocia el valor especificado con la clave dada. Si el mapa ya contenía un mapaping Para esa clave, se reemplaza el valor anterior. |
| Talla() | Devuelve el número de mapas clave-valorpings. |
| valores () | Devuelve una vista de colección de los valores. |
Groovy ejemplo:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Salida:
Jen
Groovy cierres
A Groovy Un cierre es un bloque de código encapsulado como un objeto. Se comporta como un método o una función, pero se puede almacenar en una variable y pasar como cualquier otro valor.
Ejemplo de un cierre simple:
def myClosure = { println "My First Closure" } myClosure()
Salida:
My First Closure
Una función anónima puede aceptar parámetros. La lista de identificadores está separada por comas, y una flecha (->) indica el final de la lista de parámetros.
def myClosure = { a, b, c -> y = a + b + c println y } myClosure(1, 2, 3)
Salida:
6
Un cierre también puede devolver un valor.
def myClosure = { a, b, c -> return (a + b + c) } println(myClosure(1, 2, 3))
Salida:
6
Cuando no declaras una lista de parámetros, Groovy proporciona un único parámetro implícito llamado it. Los cierres también se pueden pasar a otros cierres, que es exactamente como funcionan los métodos de colección como each, collect, y findAll extra.
Groovy Accesorios
Analizaremos tres herramientas importantes que vienen incluidas con el Groovy distribución:
- groovysh: Ejecuta código de forma interactiva desde la línea de comandos.
- groovyConsole: una ventana gráfica para la ejecución interactiva de código.
- genial: ejecuta Groovy archivos de script, de la misma manera que ejecutarías un Perl o Python guión.
Groovysh
- Un intérprete de línea de comandos.
- Te ayuda a ejecutar Groovy codificar de forma interactiva.
- Permite introducir instrucciones individuales o scripts completos.
La captura de pantalla que aparece a continuación muestra cómo Groovysh evalúa las expresiones línea por línea.
Groovy Consola
- Una interfaz Swing que actúa como un mínimo Groovy editor de desarrollo.
- Te permite escribir y ejecutar Groovy codificar de forma interactiva.
- Te ayuda a cargar y ejecutar Groovy archivos de script.
En la sección Groovy En la consola que se muestra a continuación, el script se escribe en el panel superior y el resultado aparece en el panel inferior.
Groovy
El groovy El comando es el procesador que se ejecuta Groovy programas y scripts. Compila el código fuente a bytecode en memoria y lo ejecuta en un solo paso, por lo que no se necesita una etapa de compilación separada. También se puede utilizar para probar programas simples. Groovy expresiones directamente desde la terminal, como se muestra a continuación.
Donde Groovy Se utiliza en proyectos reales.
La mayoría de los desarrolladores se encuentran Groovy No como un lenguaje independiente, sino como la capa de scripting dentro de una herramienta que ya utilizan. Saber dónde aparece facilita enormemente la colocación de la sintaxis anterior.
| Cómo Groovy se utiliza | |
|---|---|
| Jenkins | Las canalizaciones declarativas y con scripts se escriben en un Groovy DSL y las bibliotecas compartidas son sencillas Groovy clases. |
| Gradle | El clásico build.gradle el archivo es un Groovy guion, por eso se lee de forma más compacta que un Maven POM o un Hormiga archivo de compilación. |
| SoapUI | Groovy Los pasos y las aserciones del script impulsan los datos de solicitud dinámicos y las comprobaciones de respuesta personalizadas. |
| Spock | A Groovy Marco de pruebas cuyos bloques given-when-then y tablas de datos se utilizan ampliamente para pruebas unitarias de JVM. |
| Elasticsearch y Grails | Grails crea aplicaciones web completas en Groovyy varias herramientas de datos aceptan Groovy para secuencias de comandos personalizadas. |
In pruebas de automatización Para los equipos, esto importa por partida doble: el trabajo de CI que ejecuta el conjunto y las pruebas mismas pueden ser ambos GroovyDe esta forma, un único lenguaje abarca la lógica de integración y de aserción de la canalización.
Groovy Vs. Java
| Groovy | Java |
|---|---|
| El modificador de acceso predeterminado es público, por lo que un método sin modificador es accesible fuera de su clase y paquete. | El modificador de acceso predeterminado es package-private, por lo que los campos, métodos y clases sin modificador solo son visibles dentro de su paquete. |
| Los métodos getter y setter se generan automáticamente para las propiedades de la clase. | Debes definir tú mismo los métodos getter y setter para los campos. |
| Groovy Permite la sustitución de variables dentro de cadenas entre comillas dobles. | Java No admite la interpolación de cadenas. |
| La información del tipo es opcional. | La información del tipo es obligatoria. |
| Las oraciones no necesitan terminar con un punto y coma. | Cada frase termina con un punto y coma. |
| Groovy Envuelve automáticamente cada script en una clase Script generada. | Necesitas un método principal para que una clase sea ejecutable. |
Todo es público y dinámico por defecto, pero @CompileStatic Restaura Java-velocidad y comprobación de nivel. |
Todo se compila estáticamente y se comprueba en tiempo de compilación. |
Mitos sobre Groovy
| Myth | Realidad: |
|---|---|
| Groovy Solo se puede utilizar para secuencias de comandos. | Es excelente para la creación de scripts, pero también se compila en clases ordinarias que se pueden incluir en cualquier aplicación JVM. |
| Groovy Se basa completamente en cierres, por lo que es simplemente un lenguaje de programación funcional. | Groovy Toma prestadas ideas de lenguajes funcionales como Lisp y Clojure, pero en esencia sigue siendo un lenguaje orientado a objetos. |
| Groovy Solo merece la pena usarlo para el desarrollo guiado por pruebas. | Groovy Se adapta muy bien al TDD con Spock, pero ciertamente esa no es la única razón para usarlo. |
| Solo necesitas Groovy Si quieres usar Grails. | Grails es un potente framework de desarrollo web, pero Gradle, Jenkinsy Spock todos usan Groovy sin ella |
Contras de usar Groovy
- JVM y Groovy El tiempo de inicio del script es lento, lo que limita su uso para la creación rápida de scripts a nivel del sistema operativo.
- Groovy No está muy extendida fuera de las comunidades centradas en la JVM.
- Es inconveniente usarlo Groovy sin un IDE que comprenda sus características dinámicas.
- El despacho dinámico puede hacer Groovy código más lento que el equivalente Java código a menos que aplique
@CompileStatic. - Groovy Los programas pueden necesitar más memoria que los programas simples. Java
- El conocimiento de Java es, en efecto, un requisito previo.
Una vez que te sientas cómodo con Groovy sintaxis, el siguiente paso natural es el ecosistema que la rodea. Fortalezca los fundamentos con la Java tutoriales, luego vea cómo Groovy Los scripts impulsan las compilaciones y las implementaciones en Jenkins, comparar herramientas de compilación con Maven y Hormiga Apachey explorar cómo Groovy Las afirmaciones encajan en Selenium y conjuntos de pruebas de API.













