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.

  • 🧩 Java compatible: Más válido Java El código se compila sin cambios en Groovy, por lo que el coste de aprendizaje se mantiene muy bajo.
  • Less Texto estándar: Una sola línea println reemplaza la clase, el método principal y la llamada a System.out. Java demandas.
  • 🔀 Tipo dinámicoping: La palabra clave `def` permite que una variable almacene un entero y, a continuación, una cadena de texto en tiempo de ejecución.
  • 🔁 Bucles compactos: Los métodos upto, times y step reemplazan los extensos bucles for al estilo C en una sola línea.
  • 📦 Colecciones autóctonas: Las listas y los mapas tienen una sintaxis literal, además de funciones auxiliares como pop, keySet y sort.
  • 🧠 Cierres: Los bloques de código actúan como objetos, aceptan parámetros, devuelven valores y se anidan dentro de otros cierres.
  • ⚙️ Tres herramientas: groovysh proporciona una consola, groovyConsole proporciona una interfaz gráfica de usuario (GUI) y groovy ejecuta archivos de script directamente.

Groovy Tutorial de guión para principiantes

¿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 .groovy archivos.
  • 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 @TypeChecked y @CompileStatic anotaciones.

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.

Groovy Página de descarga con el 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.

Groovy cuadro de diálogo de selección de idioma del instalador

Paso 4) En la pantalla de bienvenida, haga clic en SIGUIENTE.

Groovy Pantalla de bienvenida del instalador

Paso 5) Acepte los términos de la licencia.

Groovy Pantalla del acuerdo de licencia del instalador

Paso 6) Seleccione los componentes que desea instalar y haga clic en SIGUIENTE.

Groovy Pantalla de selección de componentes del instalador

Paso 7) Seleccione el directorio de instalación y haga clic en SIGUIENTE.

Groovy pantalla del directorio de instalación del instalador

Paso 8) Seleccione la carpeta Menú Inicio y haga clic en SIGUIENTE.

Groovy Pantalla de la carpeta del menú de inicio del instalador

Paso 9) Una vez finalizada la instalación, deje las rutas con sus valores predeterminados y haga clic en SIGUIENTE.

Groovy pantalla de ruta del entorno del instalador

Paso 10) Confirme las opciones de asociación de archivos y haga clic en SIGUIENTE.

Groovy Pantalla de asociación de archivos del instalador

Paso 11) En el menú Inicio, busque Groovy Consola para confirmar la instalación.

Búsqueda en el menú Inicio que muestra el Groovy Acceso directo a la consola

⚠️ 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 main método.
  • System.out.println se reduce a println.

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:

  1. groovysh: Ejecuta código de forma interactiva desde la línea de comandos.
  2. groovyConsole: una ventana gráfica para la ejecución interactiva de código.
  3. 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.

Ejecución de la consola de línea de comandos de groovysh Groovy declaraciones

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 Editor Swing de consola con paneles de script y salida.

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.

Comando Groovy para ejecutar un script desde la terminal

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.

Preguntas Frecuentes

Groovy La versión 5.0 está dirigida a JDK 11 y versiones posteriores. Groovy 4.0 todavía es compatible con JDK 8 y el que está en desarrollo Groovy La versión 6.0 está dirigida a JDK 17. Consulta la tabla de requisitos del sistema en la página oficial de descargas de Apache antes de elegir una versión.

No. El comando groovy compila un archivo .groovy a bytecode en memoria y lo ejecuta inmediatamente. Aún puede compilar con anticipación con groovyc cuando desee empaquetar archivos .class reutilizables dentro de un Java .

Sí. Apache Groovy Se publica bajo la Licencia Apache 2.0, por lo que se permite su uso comercial, modificación y redistribución sin costo alguno. Solo se aplican las obligaciones habituales de atribución y aviso de licencia a las versiones redistribuidas.

Groovy es el lenguaje de programación. Grails es un framework web full-stack escrito en Groovy. Usted puede utilizar Groovy para archivos de compilación, canalizaciones o pruebas sin instalar nunca Grails, pero Grails no puede existir sin Groovy.

Manejan bien modismos comunes como cierres, métodos de colección y pasos de canalización. Siempre ejecute primero los scripts generados en groovyConsole, porque los modelos a veces se mezclan Java sintaxis con Groovy atajos o inventar métodos que no existen.

Pega la pila trace y el guion en un asistente para sacar a la luz posibles causas como una GroovyCastException, falta de aprobación del entorno aislado o delegado de cierre incorrecto. Considere cada sugerencia como una hipótesis y confírmela con el registro de compilación real.

Resumir este post con: