Groovy Käsikirjoitusopas aloittelijoille
⚡ Älykäs yhteenveto
Groovy Script on oliopohjainen kieli, jota käytetään mm. Java alusta, joka kääntyy JVM-tavukoodiksi. Se lisää dynaamista typing, sulkeumat ja ytimekäs syntaksi Java, ja se antaa voimaa Jenkins putket, Gradle rakentaa, ja SoapUI väitteitä.

Mikä on a Groovy Käsikirjoitus?
Apache Groovy on oliopohjainen, Java syntaksiyhteensopiva ohjelmointikieli, joka on rakennettu Java alusta. Tällä dynaamisella kielellä on monia samankaltaisia ominaisuuksia kuin Python, Ruby, Smalltalk ja Perl. Groovy lähdekoodi käännetään Java tavukoodia, joten se toimii millä tahansa alustalla, jossa Java Virtuaalikone on asennettu. Groovy tekee myös paljon työtä kulissien takana, mikä tekee siitä ketterämmän ja dynaamisemman kuin tavallinen Java.
A Groovy käsikirjoitus on yksinkertaisesti a .groovy tiedosto, joka sisältää lauseita, jotka Groovy käärii luodun luokan sisään ennen sen suorittamista. Siksi voit suorittaa yhden rivin tiedoston kirjoittamatta luokkaa tai main menetelmällä. Groovy voidaan siksi käyttää skriptikielenä Java alustan ja tarjoaa silti yritystason ominaisuuksia JavaSe lisää tuottavuusominaisuuksia, kuten DSL-tuen, sulkemiset ja valinnaisen dynaamisen ty:n.pingToisin kuin jotkut muut kielet, se on suunniteltu kumppaniksi Java, ei sen korvike.
💡 Vinkki: Groovy 5.0 on nykyinen vakaa julkaisulinja ja kohdistuu JDK 11:een ja uudempiin. Groovy 4.0 on edelleen saatavilla JDK 8 -projekteille, ja Groovy 6.0 on vielä alfa-vaiheessa JDK 17:lle. Tarkista aina järjestelmävaatimukset viralliselta lataussivulta ennen version valitsemista.
Miksi Groovy?
Tässä ovat tärkeimmät syyt, miksi sinun pitäisi käyttää ja oppia Groovy:
- Groovy on ketterä ja dynaaminen kieli.
- Se integroituu saumattomasti kaikkiin olemassa oleviin Java esineitä ja kirjastoja.
- Tuntuu helpolta ja luonnolliselta Java kehittäjille.
- Koodi on ytimekkäämpi ja merkityksellisempi kuin vastaava Java koodi.
- Voit käyttää sitä sisällä niin paljon tai vähän kuin haluat Java sovelluksissa.
- Se toimii standardin mukaisesti Java Virtuaalikonejoten erillistä suoritusympäristöä ei tarvita.
Groovy Historia
- 2003: Aloittaja James Strachan ja Bob McWhirter.
- 2004: Lähetetty Java Yhteisöprosessi nimellä JSR 241, joka myöhemmin vedettiin pois.
- 2005: Tuotiin takaisin track Jeremy Raynerin ja Guillaume Laforgen teos.
- 2007: Groovy 1.0 julkaistu.
- 2012: Groovy 2.0 julkaistu.
- 2014: Groovy 2.3 julkaistu virallisella JDK 8 -tuella.
- 2015: Groovy siitä tuli Apache Softwaren huipputason projekti Foundation.
- 2022: Groovy 4.0 julkaistu, Maven-koordinaatit siirtyvät
org.apache.groovy. - 2025: Groovy 5.0 julkaistu JDK 11:lle ja uudemmille.
Ominaisuudet Groovy
- Lista-, kartta-, alue- ja säännöllisten lausekkeiden literaalit.
- Monimenetelmät (ajonaikainen metodien lähetys) ja metaohjelmointi.
- Groovy luokat ja skriptit tallennetaan yleensä
.groovytiedostoja. - Skriptit sisältävät Groovy lausekkeita ilman luokkailmoitusta.
- Skriptit voivat sisältää myös menetelmämääritelmiä luokkamääritelmien ulkopuolella.
- Groovy koodi voidaan kääntää ja integroida täysin perinteiseen Java sovellus.
- Kielitason tuki kartoille, listoille ja säännöllisille lausekkeille.
- Tuki sulkemisille, dynaaminen typingja meta-objektiprotokolla.
- Tuki sekä staattiselle että dynaamiselle ty:llepingsekä käyttäjän ylikuormitus.
- Valinnainen staattinen tyyppitarkistus
@TypeCheckedja@CompileStatichuomautuksia.
Miten Asenna Groovy
Vaihe 1) Varmista, että sinulla on Java asennetaan.
Vaihe 2) Mene https://groovy.apache.org/download.html Ja napsauta Windows asentajan linkki.
Huomautus: Voit myös asentaa Groovy binäärisestä zip-tiedostosta, paketinhallintaohjelman, kuten SDKMAN!:n, Homebrew:n, Scoopin tai Chocolateyn, kautta tai laajennuksena omalle Java IDE. Tässä Groovy läpikäyminen, jossa pysymme Windows asentaja.
Vaihe 3) Käynnistä ladattu asennusohjelma. Valitse kieli ja napsauta OK.
Vaihe 4) Napsauta tervetulonäytössä SEURAAVA.
Vaihe 5) Hyväksy lisenssiehdot.
Vaihe 6) Valitse asennettavat komponentit ja napsauta SEURAAVA.
Vaihe 7) Valitse asennushakemisto ja napsauta SEURAAVA.
Vaihe 8) Valitse Käynnistä-valikon kansio ja napsauta SEURAAVA.
Vaihe 9) Kun asennus on valmis, jätä polut oletusarvoihinsa ja napsauta SEURAAVA.
Vaihe 10) Vahvista tiedostojen yhdistämisasetukset ja napsauta SEURAAVA.
Vaihe 11) Etsi Käynnistä-valikosta Groovy konsoli asennuksen vahvistamiseksi.
⚠️ Varoitus: Windows asennusohjelma on yhteisön luoma artefakti, ei virallinen Apache-julkaisu. Jos organisaatiosi vaatii allekirjoitettuja Apache-latauksia, käytä binääri-zip-jakelua ja tarkista sen .asc allekirjoitus ja .sha256 tarkistussumman sijaan.
Groovy Hei maailma -esimerkki
Oletetaan, että haluat tulostaa yksinkertaisen merkkijonon ”Hello World” JavaKoodi näyttäisi tältä.
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
lähtö:
Hello World
Yllä oleva koodi on voimassa molemmissa Java ja Groovy, Koska Groovy hyväksyy lähes kaikki Java syntaksi. Etu, jonka Groovy on, että voit luopua luokan määrittelystä, public-metodista ja täysin pätevästä tulostuskutsusta ja saavuttaa saman tulosteen yhdellä rivillä.
println "Hello World"
lähtö:
Hello World
- Puolipistettä ei tarvita.
- Ei ole tarvetta kurssille tai kurssille
mainmenetelmällä. System.out.printlnon supistettuprintln.
Groovy Muuttujat
In Java, staattinen sidonta on pakollinen, mikä tarkoittaa, että muuttujan tyyppi on ilmoitettava etukäteen.
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
lähtö:
104
Yllä olevassa esimerkissä muuttujan tyyppi on etukäteen määritelty avainsanalla intJos määrittäisit liukulukuluvun, käyttäisit avainsanaa float or double.
Jos yrität määrittää merkkijonoarvon int (poista kommentti riviltä 5), saat seuraavan käännösvirheen.
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
Verrattuna, Groovy tukee dynaamista typingMuuttujat määritellään avainsanalla def, eikä tyyppiä tarvitse määrittää etukäteen. Suorituksenaikainen ympäristö selvittää muuttujan tyypin, ja voit jopa muuttaa sitä myöhemmin.
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
lähtö:
class java.lang.Integer class java.lang.String
In Groovy Voit myös luoda monirivisiä merkkijonoja. Varmista vain, että laitat merkkijonon kolminkertaisiin lainausmerkkeihin.
def x = """Groovy at Guru99""" println x
lähtö:
Groovy at Guru99
Huomautus: Voit edelleen käyttää eksplisiittisiä tyyppejä, kuten byte, short, intja long in GroovyMutta kun olet kerran määritellyt tyypin eksplisiittisesti, et voi muuttaa sitä dynaamisesti.
int x = 104 println x x = "Guru99"
lähtö:
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 OperaTors
Operaattori on symboli, joka käskee kääntäjää suorittamaan tietyn matemaattisen tai loogisen manipulaation. Groovy tukee seuraavia viittä operaattoriperhettä.
- Aritmeettiset operaattorit: lisää (+), alakohtatract (-), kertolasku (*), jakolasku (/), moduuli (%), lisäys (++), vähennys (–).
- Relaatiooperaattorit: yhtä suuri kuin (==), eri suuri kuin (!=), pienempi kuin (<), pienempi tai yhtä suuri kuin (<=), suurempi kuin (>), suurempi tai yhtä suuri kuin (>=).
- Loogiset operaattorit: ja (&&) tai (||), ei (!).
- Bittikohtaiset operaattorit: ja (&) tai (|), poissulkeva tai (^), komplementti (~).
- Tehtäväoperaattorit: liitä (=) ja yhdysmuodot (+=), (-=), (*=), (/=), (%=).
Groovy lisää muutamia operaattoreita, jotka Java ei ole, ja ne poistavat paljon null-check-pohjaista tekstiä.
| OperaTor | Tuotetiedot |
|---|---|
| ?. | Turvallinen navigointi. Palauttaa null-arvon NullPointerExceptionin sijaan, kun vasen puoli on null. |
| ?: | Elvis-operaattori. Palauttaa vasemman puolen, jos se on totta, muuten oikean puolen. |
| <=> | Avaruusalusoperaattori. Delegoi compareTo-funktion ja on hyödyllinen lajittelun rajoissa. |
| ==~ | Regex-osuma. Palauttaa arvon tosi vain, kun koko merkkijono vastaa mallia. |
Groovy Loops
In Java, määrittelisit laskentasilmukan seuraavasti.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
lähtö:
0 1 2 3 4 5
Voit saavuttaa saman tuloksen Groovy jossa upto menetelmä, joka sisältää molemmat rajat.
0.upto(5) { println "$it" }
lähtö:
0 1 2 3 4 5
Tässä it on sulkeuman implisiittinen parametri ja se sisältää nykyisen iteraation arvon. Tarkastellaan seuraavaa koodia.
2.upto(4) { println "$it" }
lähtö:
2 3 4
Voit myös käyttää times metodi. Se alkaa aina nollasta ja pysähtyy yhden luvun päähän kutsutusta numerosta, joten tarvitset luvun 6 tulostaaksesi luvut 0–5.
6.times { println "$it" }
lähtö:
0 1 2 3 4 5
Oletetaan nyt, että haluat tulostaa luvut 0, 2 ja 4 Java silmukalle.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
lähtö:
0 2 4
Voit käyttää step menetelmä samaan tulokseen. Toinen argumentti on lisäys ja ensimmäinen argumentti on poissulkeva yläraja.
0.step(5, 2) { println "$it" }
lähtö:
0 2 4
Groovy Päätöksenteko
Groovy käyttää uudelleen Java ehtolausekkeet ja lisäävät paljon joustavamman switchAlla olevassa taulukossa on yhteenveto vaihtoehdoista.
| Lausunto | Tuotetiedot |
|---|---|
| jos selvitys | Kuten vuonna Java, if-lausekkeen runko suoritetaan, kun ehto on tosi. |
| jos/muuten-lauseke | if-lausekkeen ehto arvioidaan ensin. Jos se on tosi, if-lohkon lauseet suoritetaan ja else-lohko ohitetaan. Jos se on epätosi, else-lohkon lauseet suoritetaan sen sijaan. |
| Sisäkkäinen if-lauseke | Käytetään, kun sinun on testattava lisäehtoa if-lohkon sisällä. |
| vaihtaa lausunto | Sisäkkäinen if-else-ketju muuttuu lukukelvottomaksi, kun ehtoja on useita. Switch-lauseke tekee samasta logiikasta helpommin luettavaa. Groovy, tapaustunniste voi olla arvo, luokka, alue, säännöllinen lauseke tai sulkeuma. |
| Sisäkkäinen kytkinlauseke | Groovy sallii myös yhden switch-lauseen sijoittamisen toisen sisään. |
Groovy Lista
Listarakenteen avulla voit tallentaa kokoelman tietoja. GroovyLista sisältää sarjan objektiviittauksia ja säilyttää kunkin elementin sijainnin kyseisessä järjestyksessä. Listaliteraali kirjoitetaan sarjana objekteja, jotka on erotettu pilkuilla ja suljettu hakasulkeisiin.
Esimerkkejä Groovy luettelot:
- Luettelo merkkijonoista:
['Angular', 'Nodejs'] - Luettelo sekalaisten objektien viittauksista:
['Groovy', 2, 4, 2.6] - Kokonaislukuarvojen luettelo:
[16, 17, 18, 19] - Tyhjä lista:
[]
Seuraavat listausmenetelmät ovat käytettävissä Groovy.
| Menetelmä | Tuotetiedot |
|---|---|
| lisätä() | Lisää uuden arvon listan loppuun. |
| sisältää() | Palauttaa arvon tosi, jos lista sisältää tietyn arvon. |
| saada() | Palauttaa annetussa sijainnissa olevan elementin. |
| on tyhjä() | Palauttaa arvon true, jos listassa ei ole elementtejä. |
| miinus() | Luo uuden listan, joka koostuu alkuperäisen listan elementeistä, pois lukien annetussa kokoelmassa määritetyt elementit. |
| plus() | Luo uuden listan, joka koostuu alkuperäisen listan elementeistä ja annetun kokoelman elementeistä. |
| pop() | Poistaa viimeisen kohteen listalta ja palauttaa sen. |
| Poista() | Poistaa elementin annetusta kohdasta. |
| käänteinen() | Luo uuden listan, joka kääntää alkuperäisen listan elementit päinvastaisiksi. |
| koko() | Palauttaa listan elementtien lukumäärän. |
| järjestellä() | Palauttaa listan lajitellun kopion. |
Harkitse seuraavaa Groovy skriptiesimerkki.
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
lähtö:
[Guru99, is, Best, for, Groovy] true Best Learning
Ensimmäinen rivi tulostaa alkuperäisen viiden alkion listan, koska add() ei ole vielä juossut. get(2) palauttaa arvon ”Paras siitä lähtien” Groovy listat ovat nollaindeksisiä, ja pop() palauttaa arvon ”Learning”, koska kyseinen kohde lisättiin viimeiseksi.
Groovy Kartat
A Groovy Map on kokoelma avain-arvo-pareja. Avaimet eivät tarvitse lainausmerkkejä, kun ne ovat yksinkertaisia tunnisteita, mikä pitää map-literaalit erittäin kompakteina.
Esimerkkejä Groovy kartat:
[tutorial: 'Java', language: 'Groovy']on kahden avain-arvo-parin kokoelma.[:]edustaa tyhjää karttaa.
Tässä on luettelo käytettävissä olevista karttamenetelmistä Groovy.
| Menetelmä | Tuotetiedot |
|---|---|
| sisältääKey() | Tarkistaa, sisältääkö kartta annetun avaimen. |
| saada() | Hakee avaimen kartalta ja palauttaa vastaavan arvon. Jos merkintää ei löydy, se palauttaa null-arvon. |
| keySet () | Palauttaa Map-taulukon avainjoukon. |
| laittaa() | Liittää määritetyn arvon annettuun avaimeen. Jos Map sisälsi jo kartanping kyseisen avaimen vanha arvo korvataan. |
| koko() | Palauttaa avain-arvo-mapin lukumääränpings. |
| arvot () | Palauttaa arvojen kokoelmanäkymän. |
Groovy Esimerkiksi:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
lähtö:
Jen
Groovy sulkemiset
A Groovy closure on olioksi kääritty koodilohko. Se toimii kuten metodi tai funktio, mutta se voidaan tallentaa muuttujaan ja välittää eteenpäin kuten mikä tahansa muu arvo.
Esimerkki yksinkertaisesta sulkemisesta:
def myClosure = { println "My First Closure" } myClosure()
lähtö:
My First Closure
Sulkeuma voi hyväksyä parametreja. Tunnisteluettelo on pilkulla erotettu toisistaan, ja nuoli (->) merkitsee parametriluettelon loppua.
def myClosure = { a, b, c -> y = a + b + c println y } myClosure(1, 2, 3)
lähtö:
6
Sulkeminen voi myös palauttaa arvon.
def myClosure = { a, b, c -> return (a + b + c) } println(myClosure(1, 2, 3))
lähtö:
6
Kun et määrittele parametrilistaa, Groovy tarjoaa yhden implisiittisen parametrin nimeltä itSulkemiset voidaan myös siirtää muille sulkemisille, ja juuri näin keräysmenetelmät, kuten each, collectja findAll työtä.
Groovy Työkalut
Tarkastelemme kolmea tärkeää työkalua, jotka toimitetaan laitteen mukana. Groovy jakelu:
- groovysh: suorittaa koodia interaktiivisesti komentoriviltä.
- groovyKonsoli: graafinen ikkuna interaktiivista koodin suorittamista varten.
- groovy: teloitettiin Groovy skriptitiedostoja samalla tavalla kuin ajaisit Perl- tai Python skriptejä.
Groovysh
- Komentorivin komentotulkki.
- Auttaa sinua suoriutumaan Groovy koodaa interaktiivisesti.
- Voit syöttää yksittäisiä lauseita tai kokonaisia skriptejä.
Alla olevassa kuvakaappauksessa groovysh laskee lausekkeita rivi kerrallaan.
Groovy Console
- Swing-käyttöliittymä, joka toimii minimalistisena Groovy kehityseditori.
- Voit kirjoittaa ja suorittaa Groovy koodaa interaktiivisesti.
- Auttaa lataamaan ja käyttämään Groovy skriptitiedostot.
In Groovy Alla olevassa konsolissa skripti kirjoitetaan ylempään ruutuun ja tulos näkyy alempaan ruutuun.
Groovy
groovy komento on suoritin, joka suorittaa Groovy ohjelmia ja skriptejä. Se kääntää lähdekoodin tavukoodiksi muistissa ja suorittaa sen yhdessä vaiheessa, joten erillistä käännösvaihetta ei tarvita. Sitä voidaan käyttää myös yksinkertaisten Groovy lausekkeita suoraan terminaalista, kuten alla on esitetty.
Missä Groovy Käytetään oikeissa projekteissa
Useimmat kehittäjät tapaavat Groovy ei itsenäisenä kielenä, vaan jo käynnissä olevan työkalun sisällä olevana skriptikerroksena. Sen sijainnin tietäminen helpottaa yllä olevan syntaksin sijoittamista huomattavasti.
| Työkalu | Miten Groovy käytetään |
|---|---|
| Jenkins | Deklaratiiviset ja skriptatut putket kirjoitetaan Groovy DSL ja jaetut kirjastot ovat tavallisia Groovy luokat. |
| Gradle | Klassikko build.gradle tiedosto on Groovy skripti, minkä vuoksi se lukee tiiviimmin kuin Maven POM tai Muurahainen koontitiedosto. |
| SoapUI | Groovy Skriptien vaiheet ja skriptien väitteet ohjaavat dynaamisia pyyntötietoja ja mukautettuja vastaustarkistuksia. |
| Spock | A Groovy testauskehys, jonka annettuja-kun-niin-lohkoja ja datataulukoita käytetään laajalti JVM-yksikkötestauksissa. |
| Elasticsearch ja Grails | Grails rakentaa kokonaisia web-sovelluksia Groovy, ja useat datatyökalut hyväksyvät Groovy mukautettuja skriptejä varten. |
In automaatiotestaus tiimeille tämä on kaksinkertaisesti tärkeää: sekä ohjelmistopakettia ajava CI-työ että itse testit voivat olla Groovy, joten yksi kieli kattaa sekä pipeline-liimauksen että väittämälogiikan.
Groovy Vs. Java
| Groovy | Java |
|---|---|
| Oletusarvoinen käyttöoikeusmääre on julkinen, joten metodiin, jolla ei ole määrettä, voi päästä käsiksi luokkansa ja pakettinsa ulkopuolella. | Oletusarvoinen käyttöoikeusmäärite on package-private, joten kentät, metodit ja luokat, joilla ei ole määritettä, näkyvät vain oman paketin sisällä. |
| Getterit ja setterit luodaan automaattisesti luokan ominaisuuksille. | Sinun on itse määriteltävä kenttien getter- ja setter-metodit. |
| Groovy sallii muuttujien korvaamisen lainausmerkeissä olevien merkkijonojen sisällä. | Java ei tue merkkijonojen interpolointia. |
| Tyyppitiedot ovat valinnaisia. | Tyyppitiedot ovat pakollisia. |
| Lauseiden ei tarvitse päättyä puolipisteeseen. | Jokainen lauseke päättyy puolipisteeseen. |
| Groovy käärii automaattisesti jokaisen skriptin luotuun Script-luokkaan. | Tarvitset main-metodin tehdäksesi luokan suoritettavaksi. |
Kaikki on oletuksena julkista ja dynaamista, mutta @CompileStatic Palauttaa Java-tason nopeus ja tarkistus. |
Kaikki käännetään staattisesti ja tarkistetaan koontivaiheessa. |
Myyttejä aiheesta Groovy
| Myytti | Todellisuus |
|---|---|
| Groovy voidaan käyttää vain skriptaukseen. | Se sopii erinomaisesti skriptaukseen, mutta se kääntyy myös tavallisiksi luokiksi, joita voit käyttää minkä tahansa JVM-sovelluksen sisällä. |
| Groovy on kaikki sulkeumia, joten se on vain toiminnallinen ohjelmointikieli. | Groovy lainaa ideoita funktionaalisista kielistä, kuten Lisp ja Clojure, mutta se on pohjimmiltaan oliopohjainen kieli. |
| Groovy kannattaa käyttää vain testipohjaiseen kehitykseen. | Groovy sopii vahvasti TDD:lle Spockin kanssa, mutta se ei todellakaan ole ainoa syy käyttää sitä. |
| Tarvitset vain Groovy jos haluat käyttää Grailia. | Grails on tehokas web-kehityskehys, mutta Gradle, Jenkinsja Spock käyttävät kaikki Groovy ilman sitä. |
Käytön haitat Groovy
- JVM ja Groovy Skriptin käynnistysaika on hidas, mikä rajoittaa sen käyttöä nopeaan käyttöjärjestelmätason skriptaukseen.
- Groovy ei ole laajalti käytössä JVM-keskeisten yhteisöjen ulkopuolella.
- Se on hankala käyttää Groovy ilman IDE:tä, joka ymmärtää sen dynaamiset ominaisuudet.
- Dynaaminen lähetys voi tehdä Groovy koodi hitaampi kuin vastaava Java koodia, ellet hae
@CompileStatic. - Groovy ohjelmat saattavat tarvita enemmän muistia kuin tavalliset Java ohjelmia.
- Tietämys Java on käytännössä edellytys.
Kun olet tottunut Groovy syntaksin, luonnollinen seuraava askel on sitä ympäröivä ekosysteemi. Vahvista perusasioita Java oppitunti, katso sitten miten Groovy skriptit ohjaavat koontiversioita ja käyttöönottoja Jenkins, vertaa rakennustyökaluja Maven ja Apache Antja tutkia, miten Groovy väitteet sopivat yhteen Selenium ja API-testipaketteja.













