Groovy Tutorial de script para iniciantes
⚡ Resumo Inteligente
Groovy Script é uma linguagem orientada a objetos para Java Plataforma que compila para bytecode JVM. Ela adiciona tipos dinâmicos.ping, closures e sintaxe concisa para Javae alimenta Jenkins tubulações, Gradle constrói, e SoapUI afirmações.

O que é uma Groovy Roteiro?
apache Groovy é orientada a objetos, Java linguagem de programação com sintaxe compatível, criada para o Java plataforma. Essa linguagem dinâmica possui muitas características semelhantes a PythonRuby, Smalltalk e Perl. Groovy O código-fonte é compilado em Java bytecode, então ele roda em qualquer plataforma onde um Java A máquina virtual está instalada. Groovy também realiza muito trabalho nos bastidores, o que faz com que pareça mais ágil e dinâmico do que simplesmente... Java.
A Groovy escrita é simplesmente um .groovy arquivo contendo declarações que Groovy encapsula o código em uma classe gerada antes de executá-lo. É por isso que você pode executar um arquivo de uma linha sem precisar escrever uma classe ou um código. main método. Groovy pode, portanto, ser usado como uma linguagem de script para o Java plataforma, oferecendo ainda assim as funcionalidades empresariais de JavaEle adiciona recursos de produtividade, como suporte a DSL, closures e tipos dinâmicos opcionais.pingAo contrário de algumas outras línguas, ela foi concebida como uma companheira para Java, não um substituto para isso.
💡 Dica: Groovy A versão 5.0 é a versão estável atual e é compatível com JDK 11 e versões superiores. Groovy A versão 4.0 continua disponível para projetos JDK 8, e Groovy A versão 6.0 ainda está em fase alfa para o JDK 17. Sempre verifique a tabela de requisitos de sistema na página oficial de download antes de escolher uma versão.
Porque Groovy?
Aqui estão os principais motivos pelos quais você deve usar e aprender Groovy:
- Groovy É uma linguagem ágil e dinâmica.
- Ele se integra perfeitamente a todos os sistemas existentes. Java objetos e bibliotecas.
- Parece fácil e natural para Java desenvolvedores.
- O código é mais conciso e mais significativo do que o equivalente. Java código.
- Você pode usá-lo o quanto quiser dentro de casa. Java aplicações.
- Ele funciona no padrão Java Máquina virtualPortanto, não é necessário um ambiente de execução separado.
Groovy História
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Iniciado por James S.tracHan e Bob McWhirter.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Submetido ao Java O Processo Comunitário, conforme definido na JSR 241, foi posteriormente revogado.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Trazido de volta em track por Jeremy Rayner e Guillaume Laforge.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Groovy 1.0 lançado.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Groovy 2.0 lançado.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Groovy A versão 2.3 foi lançada com suporte oficial para JDK 8.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Groovy tornou-se um projeto de alto nível na Apache Software. Foundation.
- A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Groovy A versão 4.0 foi lançada, com as coordenadas do Maven sendo movidas para
org.apache.groovy. - A página de PG Soft no Demoslot reúne jogos do provedor em modo demo para quem quer testar os slots antes de jogar com dinheiro real. Em vez de procurar cada título separadamente, você pode encontrar vários jogos PG Soft grátis em um só lugar, com acesso direto pelo navegador. Groovy A versão 5.0 foi lançada para JDK 11 e versões superiores.
Características do Groovy
- Listas, mapas, intervalos e literais de expressões regulares.
- Multimétodos (despacho de métodos em tempo de execução) e metaprogramação.
- Groovy classes e scripts geralmente são armazenados em
.groovyarquivos. - Os scripts contêm Groovy declarações sem qualquer declaração de classe.
- Os scripts também podem conter definições de métodos fora das definições de classe.
- Groovy O código pode ser compilado e totalmente integrado a um sistema tradicional. Java aplicação.
- Suporte em nível de linguagem para mapas, listas e expressões regulares.
- Suporte para fechamentos, tipos dinâmicospinge o protocolo de meta-objetos.
- Suporte para tipos estáticos e dinâmicosping, além da sobrecarga do operador.
- Verificação opcional de tipo estático através do
@TypeCheckede@CompileStaticAnotações.
Como Instalar Groovy
Passo 1) Certifique-se de ter Java instalado.
Passo 2) Acesse https://groovy.apache.org/download.html E clique no Windows Link do instalador.
Nota: Você também pode instalar Groovy a partir do arquivo Zip binário, através de um gerenciador de pacotes como SDKMAN!, Homebrew, Scoop ou Chocolatey, ou como um plugin para o seu Java IDE. Neste Groovy passo a passo, vamos nos ater ao Windows instalador.
Passo 3) Execute o instalador baixado. Selecione o idioma e clique em OK.
Passo 4) Na tela de boas-vindas, clique em AVANÇAR.
Passo 5) Concordo com os termos da licença.
Passo 6) Selecione os componentes que deseja instalar e clique em AVANÇAR.
Passo 7) Selecione o diretório de instalação e clique em AVANÇAR.
Passo 8) Selecione a pasta Menu Iniciar e clique em AVANÇAR.
Passo 9) Após a conclusão da instalação, mantenha os caminhos como padrão e clique em AVANÇAR.
Passo 10) Confirme as opções de associação de arquivos e clique em AVANÇAR.
Passo 11) No menu Iniciar, pesquise por Groovy Use o console para confirmar a instalação.
⚠️ Aviso: O Windows O instalador é um artefato contribuído pela comunidade, não uma versão oficial da Apache. Se sua organização exige downloads da Apache assinados, use a distribuição binária em formato Zip e verifique sua autenticidade. .asc assinatura e .sha256 em vez de checksum.
Groovy Exemplo Olá Mundo
Suponha que você queira imprimir a string simples “Olá Mundo” em JavaO código ficaria assim.
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Saída:
Hello World
O código acima é válido em ambos Java e Groovy, Porque Groovy aceita quase todos Java sintaxe. A vantagem com Groovy É que você pode eliminar a declaração da classe, o método público e a chamada de impressão totalmente qualificada, e obter a mesma saída com uma única linha.
println "Hello World"
Saída:
Hello World
- Não há necessidade de ponto e vírgula.
- Não há necessidade de uma aula ou de um
mainmétodo. System.out.printlné reduzido paraprintln.
Groovy Variáveis
In JavaA vinculação estática é obrigatória, o que significa que o tipo de uma variável precisa ser declarado antecipadamente.
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
Saída:
104
No exemplo acima, o tipo da variável é declarado antecipadamente usando a palavra-chave. intSe você fosse declarar um número de ponto flutuante, usaria a palavra-chave float or double.
Se você tentar atribuir um valor String a um int (Descomente a linha 5) e você receberá o seguinte erro de compilação.
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
Em contraste, Groovy suporta tipos dinâmicospingAs variáveis são definidas usando a palavra-chave. defE o tipo não precisa ser declarado antecipadamente. O ambiente de execução determina o tipo da variável, e você pode até mesmo alterá-lo posteriormente.
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Saída:
class java.lang.Integer class java.lang.String
In Groovy Você também pode criar strings com várias linhas. Basta garantir que a string esteja entre aspas triplas.
def x = """Groovy at Guru99""" println x
Saída:
Groovy at Guru99
Observação: Você ainda pode usar tipos explícitos como byte, short, int e long in GroovyMas, uma vez que você declara o tipo explicitamente, não pode alterá-lo dinamicamente.
int x = 104 println x x = "Guru99"
Saída:
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
Um operador é um símbolo que indica ao compilador que ele deve executar uma manipulação matemática ou lógica específica. Groovy Dá suporte às seguintes cinco famílias de operadores.
- Operadores aritméticos: adicionar (+), subtrairtract (-), multiplicar (*), dividir (/), módulo (%), incremento (++), decremento (–).
- Operadores relacionais: igual a (==), diferente de (!=), menor que (<), menor ou igual a (<=), maior que (>), maior ou igual a (>=).
- Operadores lógicos: e (&&), ou (||), não (!).
- Operadores bit a bit: e (&), ou (|), ou exclusivo (^), complemento (~).
- Operadores de atribuição: Atribua (=) e as formas compostas (+=), (-=), (*=), (/=), (%=).
Groovy adiciona alguns operadores que Java não possui, e eles removem muita documentação repetitiva de verificação de valores nulos.
| Operator | Descrição |
|---|---|
| ?. | Navegação segura. Retorna nulo em vez de lançar uma NullPointerException quando o lado esquerdo for nulo. |
| ?: | Operador Elvis. Retorna o lado esquerdo se for verdadeiro, caso contrário, retorna o lado direito. |
| <=> | Operador de espaçonave. Delega para compareTo e é útil dentro de closures de ordenação. |
| ==~ | Correspondência de expressão regular. Retorna verdadeiro somente quando a string inteira corresponde ao padrão. |
Groovy Loops
In Java, você definiria um laço de contagem da seguinte forma.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
Saída:
0 1 2 3 4 5
Você pode obter o mesmo resultado em Groovy com o upto método, que inclui ambos os limites.
0.upto(5) { println "$it" }
Saída:
0 1 2 3 4 5
Aqui você encontra it é o parâmetro implícito do fechamento, e contém o valor da iteração atual. Considere o seguinte código.
2.upto(4) { println "$it" }
Saída:
2 3 4
Você também pode usar o times método. Ele sempre começa em 0 e para um número antes do número que você chama, então você precisa de 6 para imprimir de 0 a 5.
6.times { println "$it" }
Saída:
0 1 2 3 4 5
Agora, suponha que você queira imprimir 0, 2 e 4 com um Java para laço.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
Saída:
0 2 4
Você pode usar o step método para o mesmo resultado. O segundo argumento é o incremento e o primeiro argumento é um limite superior exclusivo.
0.step(5, 2) { println "$it" }
Saída:
0 2 4
Groovy Tomada de Decisão
Groovy reutiliza o Java declarações condicionais e adiciona muito mais flexibilidade. switchA tabela abaixo resume as opções.
| Declaração | Descrição |
|---|---|
| declaração if | Como em Java, o corpo da instrução if é executado quando a condição é verdadeira. |
| instrução if/else | A condição na instrução `if` é avaliada primeiro. Se for verdadeira, as instruções no bloco `if` são executadas e o bloco `else` é ignorado. Se for falsa, as instruções no bloco `else` são executadas em vez disso. |
| instrução if aninhada | Utilizado quando você precisa testar uma condição adicional dentro de um bloco if. |
| instrução switch | Uma cadeia aninhada de if-else torna-se ilegível quando há muitas condições. A instrução switch torna a mesma lógica mais fácil de ler. GroovyUm rótulo de caso pode ser um valor, uma classe, um intervalo, uma expressão regular ou um fechamento (closure). |
| instrução switch aninhada | Groovy Também permite que uma instrução switch seja colocada dentro de outra. |
Groovy Lista
Uma estrutura de lista permite armazenar uma coleção de itens de dados. GroovyUma lista (List) armazena uma sequência de referências a objetos e preserva a posição de cada elemento nessa sequência. Um literal de lista é escrito como uma série de objetos separados por vírgulas e delimitados por colchetes.
Exemplos de Groovy listas:
- Uma lista de strings:
['Angular', 'Nodejs'] - Uma lista de referências de objetos mistos:
['Groovy', 2, 4, 2.6] - Uma lista de valores inteiros:
[16, 17, 18, 19] - Uma lista vazia:
[]
Os seguintes métodos de lista estão disponíveis em Groovy.
| Forma | Descrição |
|---|---|
| adicionar() | Acrescenta um novo valor ao final da lista. |
| contém () | Retorna verdadeiro se a lista contiver um determinado valor. |
| get() | Retorna o elemento na posição especificada. |
| está vazia() | Retorna verdadeiro se a lista não contiver elementos. |
| menos() | Cria uma nova lista composta pelos elementos da lista original, excluindo aqueles especificados na coleção fornecida. |
| mais() | Cria uma nova lista composta pelos elementos da lista original juntamente com os elementos da coleção fornecida. |
| pop () | Remove o último item da lista e o retorna. |
| retirar() | Remove o elemento na posição indicada. |
| marcha ré() | Cria uma nova lista que inverte os elementos da lista original. |
| Tamanho() | Retorna o número de elementos na lista. |
| ordenar() | Retorna uma cópia ordenada da lista. |
Considere o seguinte Groovy Exemplo de script.
def y = ["Guru99", "is", "Melhor", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Saída:
[Guru99, is, Melhor, for, Groovy] true Melhor Learning
A primeira linha imprime a lista original de cinco elementos, porque add() Ainda não foi executado. get(2) retorna “c” desde Groovy As listas são indexadas a partir de zero, e pop() Retorna “Aprendizado” porque esse item foi adicionado por último.
Groovy mapas
A Groovy Um mapa é uma coleção de pares chave-valor. As chaves não precisam de aspas quando são identificadores simples, o que mantém os literais do mapa muito compactos.
Exemplos de Groovy mapas:
[tutorial: 'Java', language: 'Groovy']é uma coleção de dois pares chave-valor.[:]representa um mapa vazio.
Segue abaixo uma lista dos métodos de mapeamento disponíveis em Groovy.
| Forma | Descrição |
|---|---|
| contémKey() | Verifica se o mapa contém a chave fornecida. |
| get() | Procura a chave no mapa e retorna o valor correspondente. Se nenhuma entrada for encontrada, retorna nulo. |
| conjunto de chaves() | Retorna o conjunto de chaves no mapa. |
| por() | Associa o valor especificado à chave fornecida. Se o mapa já contiver um mapa.ping Para essa chave, o valor antigo é substituído. |
| Tamanho() | Retorna o número de mapas de chave-valor.pings. |
| valores () | Retorna uma coleção de valores. |
Groovy exemplo:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Saída:
Jen
Groovy Closures
A Groovy Um closure é um bloco de código encapsulado como um objeto. Ele se comporta como um método ou uma função, mas pode ser armazenado em uma variável e passado como qualquer outro valor.
Exemplo de um fechamento simples:
def myClosure = { println "My First Closure" } myClosure()
Saída:
My First Closure
Um closure pode aceitar parâmetros. A lista de identificadores é separada por vírgulas, com uma seta (->) marcando o fim da lista de parâmetros.
def myClosure = { a, b, c -> y = a + b + c println y } myClosure(1, 2, 3)
Saída:
6
Um closure também pode retornar um valor.
def myClosure = { a, b, c -> return (a + b + c) } println(myClosure(1, 2, 3))
Saída:
6
Quando você não declara uma lista de parâmetros, Groovy fornece um único parâmetro implícito chamado itOs fechamentos também podem ser passados para outros fechamentos, que é exatamente como funcionam os métodos de coleta, como each, collect e findAll <span class="word" data-word="work." style="--word-index: 2; translate: none; rotate: none; scale: none; transform: translate(0px, 0px); opacity: 1;">work.</span>
Groovy Ferramentas
Analisaremos três ferramentas importantes que acompanham o produto. Groovy distribuição:
- maneiro: Executa código interativamente a partir da linha de comando.
- groovyConsole: Uma janela gráfica para execução interativa de código.
- legal: executado Groovy arquivos de script, da mesma forma que você executaria um Perl ou Python script.
Groovysh
- Um shell de linha de comando.
- Ajuda você a executar Groovy Codifique interativamente.
- Permite inserir instruções individuais ou scripts inteiros.
A captura de tela abaixo mostra o Groovysh avaliando expressões linha por linha.
Groovy cônsul
- Uma interface Swing que funciona como um mínimo Groovy editor de desenvolvimento.
- Permite escrever e executar Groovy Codifique interativamente.
- Ajuda você a carregar e executar Groovy arquivos de script.
De acordo com o relatório Groovy No console abaixo, o script é digitado no painel superior e o resultado aparece no painel inferior.
Groovy
O groovy O comando é o processador que executa Groovy programas e scripts. Ele compila o código-fonte em bytecode na memória e o executa em uma única etapa, dispensando uma etapa de compilação separada. Também pode ser usado para testar programas e scripts simples. Groovy Expressões diretamente do terminal, como mostrado abaixo.
Onde Groovy É utilizado em projetos reais.
A maioria dos desenvolvedores se reúne Groovy Não como uma linguagem independente, mas como a camada de script dentro de uma ferramenta que eles já executam. Saber onde ela aparece torna a sintaxe acima muito mais fácil de inserir.
| ferramenta | Como Groovy é usado |
|---|---|
| Jenkins | Pipelines declarativos e scriptados são escritos em um Groovy DSL e bibliotecas compartilhadas são simples. Groovy classes. |
| Gradle | O clássico build.gradle arquivo é um Groovy script, razão pela qual é lido de forma mais compacta do que um Maven POM ou um Formiga arquivo de compilação. |
| SoapUI | Groovy Etapas de script e asserções de script controlam dados de solicitação dinâmicos e verificações de resposta personalizadas. |
| Spock | A Groovy Framework de testes cujos blocos dado-quando-então e tabelas de dados são amplamente utilizados para testes unitários da JVM. |
| Elasticsearch e Grails | O Grails cria aplicações web completas em Groovye diversas ferramentas de dados aceitam Groovy para scripts personalizados. |
In teste de automação Para as equipes, isso importa duas vezes: o trabalho de CI que executa o conjunto de testes e os próprios testes podem ser ambos... GroovyAssim, uma única linguagem abrange a integração do pipeline e a lógica de asserção.
Groovy Vs. Java
| Groovy | Java |
|---|---|
| O modificador de acesso padrão é `public`, portanto, um método sem modificador é acessível fora de sua classe e pacote. | O modificador de acesso padrão é `package-private`, portanto, campos, métodos e classes sem um modificador são visíveis apenas dentro do seu pacote. |
| Os métodos getters e setters são gerados automaticamente para as propriedades de classe. | Você precisa definir os métodos getter e setter para os campos manualmente. |
| Groovy Permite a substituição de variáveis dentro de strings entre aspas duplas. | Java Não suporta interpolação de strings. |
| A informação do tipo é opcional. | O tipo de informação é obrigatório. |
| As frases não precisam terminar com ponto e vírgula. | Toda frase termina com um ponto e vírgula. |
| Groovy Envolve automaticamente cada script em uma classe Script gerada. | Você precisa de um método `main` para tornar uma classe executável. |
Por padrão, tudo é público e dinâmico, mas @CompileStatic Restaura Java-nível de velocidade e verificação. |
Tudo é compilado estaticamente e verificado em tempo de compilação. |
Mitos sobre Groovy
| Mito | Realidade |
|---|---|
| Groovy Só pode ser usado para criação de scripts. | É excelente para criação de scripts, mas também é compilado em classes comuns que você pode distribuir em qualquer aplicação JVM. |
| Groovy É tudo sobre closures, então é simplesmente uma linguagem de programação funcional. | Groovy A linguagem incorpora ideias de linguagens funcionais como Lisp e Clojure, mas, em sua essência, permanece uma linguagem orientada a objetos. |
| Groovy Só vale a pena usar para desenvolvimento orientado a testes. | Groovy É uma ótima opção para TDD com Spock, mas certamente essa não é a única razão para usá-lo. |
| Você só precisa Groovy Se você quiser usar o Grails. | Grails é um framework poderoso para desenvolvimento web, mas Gradle, JenkinsSpock e Spock usam Groovy sem ele. |
Contras de usar Groovy
- JVM e Groovy O tempo de inicialização do script é lento, o que limita seu uso para scripts rápidos em nível de sistema operacional.
- Groovy Não é amplamente adotado fora das comunidades centradas na JVM.
- É inconveniente de usar. Groovy sem uma IDE que compreenda suas características dinâmicas.
- O despacho dinâmico pode fazer Groovy código mais lento que o equivalente Java código a menos que você aplique
@CompileStatic. - Groovy Os programas podem precisar de mais memória do que os computadores. Java programas.
- Conhecimento de Java é, na prática, um pré-requisito.
Assim que você se sentir confortável com Groovy A sintaxe, e o próximo passo natural, é o ecossistema que a envolve. Fortaleça os fundamentos com o Java tutorial, então veja como Groovy scripts controlam compilações e implantações em Jenkins, compare as ferramentas de compilação com Maven e Formiga Apachee explore como Groovy as afirmações se encaixam em Selenium e conjuntos de testes de API.













