Gradle

Gradle

Gradle logo.png
Alapadatok

Karbantartó Gradle Inc.
Kiadási év 2007
Jelenlegi  verzió 7.2
( 2021. augusztus 17. )
operációs rendszer Platformfüggetlen
programozási nyelv Java , Groovy , Kotlin
kategória Építs fel menedzsment eszközt
Engedély Apache licenc, 2.0 verzió
gradle.org

Gradle egy Java- alapú építmények kezelése automatizálási eszköz, hasonló Apache Ant és Apache Maven . A Gradle Groovy- alapú tartományspecifikus nyelvet (DSL) használ az építendő projektek leírásához. A Maven projekt definícióival ( pom.xml) ellentétben a Gradle szkriptek közvetlenül végrehajtható kódok.

A Gradle olyan szoftverrendszerekhez készült, amelyek különféle projektekből állnak. A „várj a váratlanra” filozófia alapján megpróbálták összekapcsolni a Maven-ben kialakított „build-by-Convention” elvet (a „ konfiguráció előtti egyeztetés” változata) az Ant rugalmasságával.

A nagy projektek összeállítása sokáig tarthat. Ezért támogatja a Gradle az inkrementális és párhuzamos építési folyamatokat. Az előbbiek lehetővé teszik, hogy a szoftver csak azokat a részeit építsék meg, amelyek megváltoztak, vagy azokon alapulnak, míg az utóbbi lehetővé teszi bizonyos feladatok (például a tesztek) párhuzamos futtatását több CPU -n vagy számítógépen. Ez lehetővé teszi a létrehozási folyamat sokkal gyorsabb elérését.

A Gradle -t néhány jól ismert keretrendszer használja felépítéséhez - köztük a Hibernate , a Grails , a Groovy, valamint a Spring Integration és a Spring Security . Az Android rendszert 2013 közepe óta adják hozzá . Azóta az eszközt kibővítették, hogy támogassa az úgynevezett "natív" rendszerek építését, amelyek nem Java platformon alapulnak. A C ++, C, Objective-C és Assembler programozási nyelvek itt támogatottak.

Koncepció és plug-in architektúra

A Gradle felépítési koncepciója átveszi a Maven által bevezetett szabványos egyezményeket ("konvenció a konfiguráció felett") a projektforrások könyvtári elrendezésére, valamint a (Java) projekt építésének szokásos fázisait (érvényesítés, összeállítás, tesztvégrehajtás, archívum létrehozása és jelentés) generáció, elosztás). A buildfájl ezért minimális lehet, és egyetlen sorból ( apply plugin: 'java') állhat egy egyszerű Java projektben . A Gradle nagymértékben elfogadja a Maven koncepcióját is, amely szerint a projekt függ más projektektől vagy külső könyvtáraktól. A Gradle támaszkodhat a széles körben használt Maven adattárakra (helyi, vállalati és internetes adattárak). Alternatív megoldásként a felhasználó Ivy jelentéseket is használhat .

A Mavenhez hasonlóan a Gradle absztrakt magból és számos plug-inből áll, és sokféleképpen bővíthető ennek a szerkezetnek köszönhetően. Még a Java build megvalósítása is egy Java beépülő modulon alapul. Ezzel az architektúrával a Gradle lehetőséget kínál arra, hogy bármilyen szoftverplatformra folyamatokat építsen, és lehetőséget ad a felhasználónak arra, hogy közvetítse „nem hagyományos” elképzeléseit az eszközhöz. A Gradle olyan beépülő modulokat szállít a gyárból, amelyek a Java mellett Groovy, Scala és C ++ projekteket is építhetnek. Ezenkívül a buildet a Java Enterprise Archives (WAR, EAR) támogatja. A további beépülő modulok lehetővé teszik a szoftver minőségének ( pl. FindBugs , PMD , Checkstyle ) automatikus ellenőrzésekkel és a megfelelő jelentések generálásával történő nyomon követését .

A Gradle-hez mellékelt plug-inek elsősorban Java, Groovy és Scala projektek fejlesztésére és telepítésére szolgálnak, de más programozási nyelvekhez és munkafolyamatokhoz is használhatók. Amióta az Android csapata a Gradle, mint buildrendszer mellett döntött, a fejlesztők elsősorban a natív programozási környezetekhez tartozó buildmodell támogatását népszerűsítették.

Gradle DSL

Ellentétben az Apache Maven konvencióival és XML deklarációival, a felhasználó a Gradles tartományspecifikus nyelvvel ( tartományspecifikus nyelv , csak DSL) dolgozik , amelyet - Gradle build fájlként mindig Groovy szkriptként - kiterjeszt vagy megváltoztathat tulajdonságait. A Groovy -kóddal saját szerkesztési módosításokat is írhat, vagy felülírhatja az előre meghatározott szabványokat, és alkalmazkodhat saját igényeihez. A Gradle felhasználók mindkét stílust használhatják: a Maven deklaratív megközelítését, amely a szokásos konvenciókon alapul, és Ant kényszerítőbb megközelítését, amelyben a felhasználónak mindent részletesen meg kell határoznia.

E DSL nyelv alapján a felhasználó nem kényszerül arra, hogy először megtanulja a Groovy nyelvet, mielőtt megpróbálná létrehozni a Gradle szkripteket.

A Gradle 5.0 óta Kotlin DSL -t is kínálnak a Groovy DSL alternatívájaként; ez különösen lehetővé teszi a fejlesztési környezetek jobb automatikus kiegészítését .

A gradle felépítés

A Gradle ismeri a buildfeldolgozás két fő fázisát, amelyeken mindig keresztülmegy: a konfigurációt és a végrehajtást. A konfigurációs ciklus során a teljes build definíció átfut, hogy létrehozza a függőségi gráfot (DAG), amely tartalmazza az összes feldolgozandó lépés sorozatát. A második részben ez a grafikon fut a kívánt feladatokhoz. A konfiguráció és a végrehajtás is elérhető a felhasználó számára egy nyílt API -n keresztül .

A feladatgráf által leírt építési folyamat olyan feladatok sorozatából áll, amelyek hierarchikusan függenek egymástól, és ahol az utód csak akkor hajtódik végre, ha elődeit sikeresen befejezték. Például a „teszt” feladat csak akkor hajtódik végre, ha a „fordítás”, „folyamat-erőforrások”, „osztályok”, „tesztCompile” feladatok korábban hibamentesen futottak.

Fájlok készítése

A Gradle főleg három egyéni fájlt használ az egyszerű felépítéshez:

  • build.gradle - a build definíciója a Gradle DSL alapján, a projekt összes feladatával és függőségével (egy többprojektnek projektenként egy ilyen buildfájlja van, amelyet rövidre lehet tartani, ha az "atya" build szkriptjétől örököljük a tulajdonságokat).
  • settings.gradle (opcionális) - többprojekt esetén itt határozzák meg a részt vevő alprojekteket.
  • gradle.properties (nem kötelező) - azoknak a tulajdonságoknak a listája, amelyek érvényesek egy build projekt -specifikus Gradle inicializálására.

A Gradle szkriptek Groovy -kódot tartalmazhatnak közvetlenül, vagy Groovy -osztály hajthatja végre. Alternatív megoldásként a Maven lerakatból is betölthetők építési függőségként.

Egyszerű példák a "build.gradle" fájlra

A Java -projekt legegyszerűbb build szkriptje így néz ki:

apply plugin: 'java'

Példa egy külön feladat meghatározására:

task hello << {
    println 'Dies ist der Hello-Task'
}

Egy feladat meghívható a parancssorból:

$ gradle hello

IDE támogatás

A Gradle beépülő modulok számos integrált fejlesztői környezethez elérhetők , beleértve a NetBeans-t , az IntelliJ IDEA-t és az Eclipse-t . Alternatív megoldásként az Eclipse és az IDEA projektfájlok is előállíthatók a Gradle beépülő modulok használatával.

További részletek

Az Apache Ant build.xmlbuildeket a Gradle helyettesítheti, ha importálja a fájlokat a Gradle -be. A hangyafeladatok közvetlenül a DSL -ből is hívhatók. A Gradle függőségekként is felhasználhatja az Apache Maven adattárakban található műtermékeket, valamint ott is közzétehet műtermékeket. A Gradle támogatja az Apache Ivy adattárakat is. A Build Init beépülő modul használatával a Maven projektek átalakíthatók Gradle -re.

irodalom

  • Tim Berglund, Matthew [J.] McCullough: Építés és tesztelés a Gradle -lal . O'Reilly Media, Sebastopol CA 2011, ISBN 978-1-4493-0463-8 .
  • Joachim Baumann: Gradle: Kompakt bevezetés az építési felügyeleti rendszerbe . d.punkt.verlag, 2013, ISBN 978-3-86490-049-5 .
  • Benjamin Muschko: Gradle in Action . Manning Publications, 2014, ISBN 978-1-61729-130-2 .
  • Hubert Klein Ikkink: Gradle hatékony végrehajtási útmutató. Packt Kiadó, 2012, ISBN 1-84951-810-6
  • Etienne Studer: Bevezetés a Gradle-be Java fejlesztőknek , a Gradle máris megingatja a buildet és az Enterprise Gradle , 3 részes sorozat a Gradle-ről a Java Magazine 1-től 2011-ig.

web Linkek

Egyéni bizonyíték

  1. github.com .
  2. A fokozat nyílt forráskódú projektje az Open Hub: Nyelvek oldalon . In: Open Hub . (hozzáférés 2018. július 18 -án).
  3. A nyílt fokú nyílt forráskódú projekt az Open Hub: Licencek oldalon . In: Open Hub . (hozzáférés 2018. július 18 -án).
  4. Gradle honlap
  5. heise online: A Gradle 5.0 támogatja a Java -t 2018. december 11 -én , 3 -án , elérhető 2021. június 24 -én .
  6. ^ Gradle Kotlin DSL alapozó. In: Gradle felhasználói kézikönyv. Letöltve: 2021. június 24 .
  7. ^ A Java bővítmény. In: Gradle felhasználói kézikönyv. Letöltve: 2021. június 24 .
  8. Build Init beépülő modul. In: Gradle felhasználói kézikönyv. Letöltve: 2021. június 24 .