IT Język programowania

Groovy

Znany też jako:Apache Groovy

Definicja #

Groovy (Apache Groovy) to dynamiczny, obiektowo zorientowany język programowania dla platformy JVM, stworzony przez Jamesa Strachana w 2003 roku. Jest w pełni interoperacyjny z Javą — Groovy kompiluje się do bytecode JVM, może importować dowolne biblioteki Java i być importowany z kodu Java.

Kluczowe cechy Groovy:

  • Dynamiczne typowanie — zmienne mogą być deklarowane jako def bez określania typu; opcjonalne typowanie statyczne (@TypeChecked, @CompileStatic)
  • Zwięzła składnia — opcjonalne średniki, opcjonalne return, uproszczone gettery/settery, string interpolacja "Hello ${name}"
  • Closures — bloki kodu jako obiekty (podobne do lambd Java, ale potężniejsze); podstawa DSL w Groovy
  • GStrings — template strings z interpolacją wyrażeń ("${obj.property}")
  • Builders — mechanizm DSL do tworzenia strukturalnych konfiguracji (XML, HTML, JSON builders)
  • Metaprogramowanie — dynamiczne dodawanie metod do klas w runtime, GroovyObject, kategorie

Główne zastosowania Groovy:

  • Jenkins pipelines — Jenkinsfile pisany w Groovy DSL (zarówno Declarative, jak i Scripted Pipeline)
  • Gradle — system budowania projektów Java/Android używa Groovy DSL (lub Kotlin DSL) w plikach build.gradle
  • Grails — framework webowy dla Groovy (odpowiednik Ruby on Rails dla JVM)
  • Spock — framework testowy dla Java/Groovy, ceniony za czytelność specyfikacji BDD

Zastosowania #

Groovy stosuje się do:

  • Pisania pipelinów CI/CD w Jenkinsie — Jenkinsfile w Groovy DSL definiuje etapy build, test i deploy
  • Konfiguracji projektów Java i Android — pliki build.gradle w Groovy DSL (Gradle)
  • Testowania aplikacji Java — framework Spock (Groovy) do eleganckich testów BDD dla kodu Java
  • Skryptowania w środowiskach JVM — szybkie skrypty Groovy bez konieczności tworzenia pełnych projektów Java
  • Aplikacji webowych na JVM — framework Grails jako alternatywa dla Spring Boot z konwencją-nad-konfiguracją

Ścieżka nauki #

Groovy jest najczęściej uczony w kontekście konkretnego narzędzia (Jenkins lub Gradle) — rzadko jako pierwszy język programowania.

Zacznij od:

  • Podstawy składni Groovy: def, GStrings, listy i mapy (groovsh — interaktywna konsola)
  • Closures: definicja, przekazywanie jako argumenty, it jako domyślny parametr
  • Groovy jako skrypt Jenkinsa: podstawy Scripted Pipeline (node { stage { } })
  • Declarative Pipeline — nowoczesna, strukturalna składnia Jenkinsfile
  • Wspólne biblioteki Jenkins (Shared Libraries) — współdzielenie kodu Groovy między pipeline'ami

Następnie pogłębiaj:

  • Gradle — pliki build.gradle w Groovy DSL; tasks, plugins, dependency management
  • Spock Framework — pisanie testów BDD dla Javy w Groovy; bloki given/when/then, parametryzacja
  • Jeśli interesujesz się Groovy jako głównym językiem — poznaj Grails jako framework webowy
  • Migracja: Gradle od wersji 8 preferuje Kotlin DSL (build.gradle.kts) nad Groovy DSL

FAQ #

Czy muszę uczyć się Groovy by pisać pipeline Jenkinsa?
Tak — Jenkinsfile używa składni Groovy (zarówno Declarative, jak i Scripted Pipeline). Nie musisz być ekspertem Groovy; podstawy (zmienne, pętle, closures, warunki) wystarczają do pisania większości pipelinów. Złożone, wielokrotnie używane logiki wymagają jednak Shared Libraries pisanych w pełnym Groovy.
Czym różni się Groovy od Javy?
Groovy jest w pełni kompatybilny z Javą — każdy kod Java jest (prawie) poprawnym kodem Groovy. Groovy dodaje dynamiczne typowanie (def), string interpolację, closures, opcjonalne średniki i zwięzlejszą składnię. Groovy jest bardziej zwięzły i skryptowy; Java jest bardziej wydajna i typowana statycznie.
Czy Groovy jest jeszcze aktywnie rozwijany?
Tak — Apache Groovy jest aktywnym projektem open-source (aktualna wersja 4.x). Jednak jego popularność jako samodzielnego języka maleje; jest używany głównie przez Jenkinsa i Gradle. Gradle aktywnie promuje migrację do Kotlin DSL (build.gradle.kts), co może zmniejszyć znaczenie Groovy DSL w przyszłości.
Co to jest Spock Framework?
Spock to framework testowy dla aplikacji Java i Groovy pisany w Groovy. Wyróżnia się czytelną strukturą testów BDD z blokami given/when/then i potężną parametryzacją (where: tables). Jest alternatywą dla JUnit z bardziej ekspresywną składnią specyfikacji zachowania.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Groovy w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.