Gradle

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Gradle
software
Siglă
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 ; acum 2 ani )
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ă


Bibliografie

Elemente conexe

Alte proiecte

linkuri externe

Software gratuit Free Software Portal : accesați intrările Wikipedia care se ocupă de software gratuit