Gradle
Gradle software | |
---|---|
Tip | Automatizarea dezvoltării |
Dezvoltator | Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling,colaboratori pe GitHub |
Data primei versiuni | 2007 |
Ultima versiune | 5.5.1 [1] (10 iulie 2019 ) |
Sistem de operare | Multiplatform |
Limba | Macabru Java Kotlin |
Licență | Apache 2.0 ( Licență gratuită ) |
Site-ul web | gradle.org |
Gradle este un sistem de automatizare a dezvoltării open source bazat pe ideile Apache Ant și Apache Maven , care introduce un limbaj specific domeniului (DSL) bazat pe Groovy [2] , în locul modului XML folosit de Apache Maven pentru a declara configurația proiect. Scripturile Gradle pot fi rulate direct, spre deosebire de definițiile proiectului Apache Maven (pom.xml).
Spre deosebire de Apache Maven, care definește ciclul de viață al unui proces, și Apache Ant, unde ordinea sarcinilor (numite ținte) este determinată de dependențe (depinde de), Gradle folosește un grafic aciclic direct (DAG) pentru a determina ordinea în care procesele pot fi rulate.
Gradle este conceput pentru versiuni cu mai multe proiecte care pot crește până la suficient de mari și acceptă versiuni incrementale, determinând în mod inteligent ce părți ale arborelui de construcție sunt „ actualizate ”, astfel încât toate procesele care depind doar în acele părți nu vor fi trebuie repetat; procedând astfel, software-ul reduce semnificativ timpul de construcție al proiectului, deoarece, în timpul noii încercări de construcție, vor fi executate doar activitățile al căror cod a fost modificat de la ultima construcție finalizată. Gradle acceptă, de asemenea, construcția de proiecte pentru procese concurente, care vă permite să efectuați anumite sarcini în timpul construcției (de exemplu, teste automate prin teste unitare), efectuate în paralel pe mai multe nuclee ale aceluiași procesor , pe mai multe procesoare sau pe mai multe calculatoare.
Pluginurile inițiale sunt axate în principal pe dezvoltarea și implementarea Java , Groovy , Scala și C ++ , dar intenția este de a extinde proiectul și la alte limbi.
Istorie
Programul a fost inițial conceput și implementat de Hans Dockter, care este fondatorul companiei Gradle. Codul sursă este partajat prin intermediul software-ului de control al versiunii distribuite Git pe GitHub . [3] În cursul anului 2013, Google a ales Gradle ca sistem automatizat de construcție pentru proiectul Android . [4] [5]
Aspecte tehnice
Software-ul păstrează câteva puncte forte ale lui Apache Maven :
- „Convenție de configurare”
- "Ciclu de viață"
- „Managementul dependenței” în stilul lui Apache Ivy sau Apache Maven
- "Repertoriu"
Gradle oferă următoarele avantaje:
- posibilitatea de a defini mecanismul de construcție în limbaj Groovy, în fișierul de construire (fișier care va fi mai ușor decât echivalentul XML),
- abilitatea de a schimba comportamentul implicit al unor activități,
- o notație compactă pentru a descrie dependențe,
- un motor de producție conceput pentru a realiza proiecte multilingve.
Instrumentul vă permite să construiți fără efort proiecte scrise în alte limbaje de programare decât Java . [6] Migrarea unui proiect de la Apache Maven la Gradle este foarte ușoară, dacă proiectul inițial îndeplinește convențiile propuse de Apache Maven . [6]
La fel ca în cazul Apache Maven , cadrul lui Gradle constă dintr-un nucleu abstract și o serie de plugin-uri care își extind funcționalitatea. Construirea proiectelor Java se face și prin intermediul unui plugin. Gradle include câteva plugin-uri oficiale care permit construirea proiectelor Java , Groovy , Scala și C ++ ; în plus, este susținută construcția arhivelor Java Enterprise (arhive WAR și EAR ). Alte pluginuri vă permit să monitorizați calitatea software-ului (de exemplu, acestea invocă analiza codului sursă de către motorul FindBugs, SonarQube, PMD sau Checkstyle), recurgând la executarea verificărilor automate și la producerea rapoartelor corespunzător activității de construcție.
Procesul de construire Gradle se împarte în două faze principale, care sunt întotdeauna efectuate: configurare și execuție. În timpul ciclului de configurare, pașii întregii construcții sunt conturați pentru a genera graficul de dependență ( DAG ) care conține secvența tuturor fazelor care trebuie efectuate. A doua fază constă în parcurgerea activităților depistate anterior. Atât configurația, cât și implementarea compilării au loc prin intermediul instrucțiunilor accesibile utilizatorului printr-o interfață de programare deschisă și documentată.
Gradle folosește trei fișiere principale pentru a personaliza construcția:
- build.gradle (obligatoriu)
- settings.gradle (opțional) - Fișierul conține definiția modulelor care alcătuiesc proiectul multiplu.
- gradle.properties (opțional) - Fișierul conține o listă de valori valide pentru inițializarea proprietăților unui anumit proiect Gradle.
Există plugin-uri Gradle pentru multe medii integrate de dezvoltare (IDE); acestea includ cele mai populare: NetBeans , IntelliJ IDEA și Eclipse .
Depozitele Apache Maven și Apache Ivy sunt acceptate de Gradle.
Documentație
Documentația Gradle (tutoriale, manual și documentația API ), care introduce începătorul în tehnologia Gradle, poate fi găsită online de pe site-ul oficial al produsului. Cu toate acestea, documentația este inclusă în pachetul de descărcare, aflat la „. \ Docs”.
Exemplu de proiect Java
Luați în considerare cazul în care structura folderului Maven este utilizată pentru a deține codul sursă și resursele Java. Aceste foldere sunt: "src / main / java", "src / main / resources", "src / test / java" și "src / test / resources".
build.gradle
aplicați pluginul: „java”
Executând „gradle build”, rezultatul va fi
> gradle build
: compileJava
: processResources
: clase
: borcan
: asambla
: compileTestJava
: processTestResources
: testClasses
:Test
: Verifica
: construi
CONSTRUIȚI SUCCES
Pluginul Java emulează ca activitate majoritatea ciclurilor de viață prezise de Maven în graficul aciclic direct al dependențelor pentru intrările și ieșirile fiecărei activități. În acest caz elementar, activitatea de construire depinde de ceea ce este returnat de activitățile de verificare și asamblare . La fel, verificarea depinde de test și asamblarea depinde de borcan .
Pentru proiectele care nu respectă convențiile propuse de Maven, Gradle vă permite să configurați structura folderelor. Următorul exemplu ar sprijini un proiect care conține fișiere sursă în „src / java”, mai degrabă decât „src / main / java” (conform convenției exclusive Maven).
build.gradle
aplicați pluginul: „java”
sourceSets . principal . java . srcDirs = [ 'src / java' ]
Exemplu Migrația furnicilor
Gradle se integrează strâns cu Ant și tratează, de asemenea, fișierele Ant build ca scripturi care pot fi importate direct în timpul compilării. Următorul exemplu prezintă o construcție simplă Ant, încorporată ca activitate Gradle
build.xml
<proiect>
<target name = "ant.target" >
<echo message = "Rularea ant.target!" />
</target>
</project>
build.gradle
furnică . importBuild 'build.xml'
Rularea gradle ant.target , rezultatul va fi
> gradle ant.target
: ant.target
[ant: echo] Rularea ant.target!
CONSTRUIȚI SUCCES
Sarcină
Un concept cheie al lui Gradle este cel al activităților.
Activități predefinite
Gradle are mai multe activități încorporate în mod implicit; pentru a le vizualiza, utilizați următoarea comandă:
gradle - sarcini q
Rezultatul comenzii este:
hello-world $ gradle -q task-uri
-------------------------------------------------- ---
Toate sarcinile rulabile din proiectul rădăcină
-------------------------------------------------- ---
Sarcini de ajutor
----------
dependențe - Afișează dependențele proiectului rădăcină „hello-world”.
ajutor - Afișează un mesaj de ajutor
proiecte - Afișează subproiectele proiectului rădăcină „hello-world”.
properties - Afișează proprietățile proiectului rădăcină „hello-world”.
task - Afișează sarcinile executabile din proiectul rădăcină „hello-world”
(unele dintre sarcinile afișate pot aparține subproiectelor).
Alte sarcini
-----------
Salut Lume
Pentru a vedea toate sarcinile și mai multe detalii, rulați cu --all.
unde în „Alte sarcini” sunt listate sarcinile definite de utilizator.
Istoricul distribuției
Versiune | Data |
---|---|
0,7 | 20.07.2009 |
0,8 | 28.09.2009 |
0,9 | 19.12.2010 |
1.0 | 2012-06-12 |
1.1 | 31.07.2012 |
1.2 | 2012-09-12 |
1.3 | 2012-11-20 |
1.4 | 28.01.2013 |
1.5 | 27.03.2013 |
1.6 | 07.05.2013 |
1.7 | 06.08.2013 |
1.8 | 24-09-2013 |
1.9 | 2013-11-19 |
1.10 | 2013-12-17 |
1.11 | 2014-02-11 |
1.12 | 29.04.2014 |
2.0 | 01.07.2014 [7] |
2.1 | 08.09.2014 [8] |
2.2 | 2014-11-10 [9] |
2.3 | 16.02.2015 [10] |
2.4 | 05.05.2015 [11] |
2.5 | 08/07/2015 [12] |
2.6 | 2015-08-10 [13] |
2.7 | 14.09.2015 [14] |
2.8 | 19-10-2015 [15] |
2.10 | 21.12.2015 [16] |
2.11 | 08.02.2016 |
2.12 | 14.03.2016 |
2.13 | 25.04.2016 |
2.14 | 14.06.2016 |
2.14.1 | 18.07.2016 |
3.0 | 15.08.2016 |
3.1 | 19.09.2016 |
3.2 | 2016-11-14 |
3.2.1 | 22.11.2016 |
3.3 | 03.01.2017 |
3.4 | 20.02.2017 |
3.4.1 | 03-03 2017 |
3.5 | 2017-04-10 |
3.5.1 | 16.06.2017 |
4.0 | 14.06.2017 |
Versiunile anterioare pot fi preluate de pe pagina de descărcare Gradle.
Gradle 2.3 adaugă unele funcționalități managementului dependenței și suportului IDE și îmbunătățește unele plugin-uri încorporate. [17] Începând cu această versiune este posibil să utilizați API-ul Artifact Query pentru a accesa metadatele artefactelor ivy.xml și pom.xml, pe care Gradle le folosește pentru a rezolva dependențele. [17] Acest lucru vă permite să generați un depozit offline și să inspectați fișierele pentru metadate personalizate. [17]
Notă
- ^ https://gradle.org/releases/
- ^ (RO) De ce să-ți construiești proiectele Java cu Gradle în loc de Ant sau Maven? , pe drdobbs.com , Benjamin Muschko, 8 iulie 2014. Adus pe 8 iulie 2014 ( arhivat 22 aprilie 2015) .
- ^ Repozitie oficială Gradle găzduită de GitHub
- ^ (RO) Site-ul proiectului Android Tools - Ghidul utilizatorului pentru pluginul Gradle pe sites.google.com, Google Inc. , 17 mai 2013. Accesat la 17 mai 2013 ( depus la 22 aprilie 2015).
- ^ (RO) Site de documentare pentru dezvoltatori Android - Configurați-vă versiunea pe developer.android.com, Google Inc. , 17 mai 2013. Accesat pe 27 noiembrie 2020.
- ^ a b ( FR ) Build automatisé: à la découverte de Gradle , pe connect.ed-diamond.com , Gaylord Mazelier, septembrie 2011. Accesat în septembrie 2011 ( arhivat 22 aprilie 2015) .
- ^ Lansat Gradle 2.0 - Old Forum - Forumuri Gradle
- ^ Gradle 2.1 lansat - Old Forum - Gradle Forums
- ^ Gradle 2.2 lansat - Old Forum - Gradle Forums
- ^ Gradle 2.3 lansat - Old Forum - Gradle Forums
- ^ Lansat Gradle 2.4 - Știri - Forumuri Gradle
- ^ Gradle 2.5 lansat - Știri - Forumuri Gradle
- ^ Gradle 2.6 lansat - Știri - Forumuri Gradle
- ^ Gradle 2.7 lansat - Știri - Forumuri Gradle
- ^ Gradle 2.8 lansat - Știri - Forumuri Gradle
- ^ Lansat Gradle 2.10 - Știri - Forumuri Gradle
- ^ a b c ( EN ) Note de lansare Gradle 2.3 , la gradle.org , Site-ul oficial Gradle, 16 februarie 2015. Accesat la 16 februarie 2015 (arhivat din original la 23 aprilie 2015) .
Bibliografie
- ( EN ) Tim Berglund și Matthew McCullough, Construirea și testarea cu Gradle , Cuvânt înainte de Hans Dockter, În primul rând, O'Reilly Media , iulie 2011, p. 116, ISBN 978-1-4493-0463-8 .
- ( EN ) Hubert Ikkink, Gradle Effective Implementation Guide , First, Packt Publishing , noiembrie 2012, p. 382, ISBN 978-1-84951-810-9 .
- ( EN ) Tim Berglund și Matthew McCullough, Gradle DSL , First, x O'Reilly Media , mai 2013, pp. 50 est., ISBN 978-1-4493-0467-6 .
- ( EN ) Benjamin Muschko, Gradle In Action , First, Manning Publications , toamna 2013, p. 390, ISBN 978-1-61729-130-2 .
- ( DE ) Joachim Baumann, Gradle: Ein kompakter Einstieg in das Build-Management-System , First, D. Punkt. Verlag GmbH, 2013, ISBN 978-3-86490-049-5 .
- ( DE ) Etienne Studer, „Ein Einstieg in Gradle für Java-Entwickler” și „Enterprise Gradle” , First, 3-Teilige Serie über Gradle im Java Magazin 1 bis 3/2011, 2011.
Elemente conexe
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere despre Gradle
linkuri externe
- ( RO ) Site oficial , pe gradle.org .
- Gradle , pe packages.debian.org .
- (EN) Gradle , pe GitHub .
- Depozitul sursă Gradle , la github.com .
- (EN) Gradle , din Directory Free Software .
- ( EN ) Gradle Inc. pentru asistență comercială