Gradle

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 14 august 2019; verificările necesită 30 de modificări .
gradle
Tip de instrument de automatizare a construirii [d]
Scris in Java , Groovy [2] și Kotlin
Sistem de operare multiplatformă
Prima editie 2007
Platformă hardware Mașină virtuală Java
ultima versiune
Stat activ
Licență Licență Apache 2.0 [3]
Site-ul web gradle.org
 Fișiere media la Wikimedia Commons

Gradle  este un sistem de construire automat construit pe principiile Apache Ant și Apache Maven , dar care furnizează DSL -uri în Groovy și Kotlin în locul formei tradiționale de reprezentare a configurației de proiect asemănătoare XML .

Spre deosebire de Apache Maven , care se bazează pe conceptul ciclului de viață al proiectului, și Apache Ant , în care ordinea de execuție a sarcinilor (țintelor) este determinată de dependențe (depinde), Gradle folosește un grafic aciclic direcționat pentru a determina ordinea în care sarcini sunt executate.

Gradle a fost proiectat pentru versiuni extensibile cu mai multe proiecte și acceptă modelul de dezvoltare în cascadă , determinând care părți ale arborelui de construcție nu s-au schimbat și ce sarcini care depind de acele părți nu trebuie repornite.

Principalele pluginuri sunt pentru dezvoltarea și implementarea aplicațiilor Java , Groovy și Scala , dar există plugin-uri pentru alte limbaje de programare : C++ , Swift , Kotlin și, de asemenea, proiectul Spring cu Spring Boot.

Are propriul său Daemon Gradle [4] - un proces de fundal pentru a accelera construirea proiectului.

Instalarea Gradle

1. Mergem la pagina de descărcare Arhivată 31 octombrie 2021 pe Wayback Machine și alegem o metodă convenabilă de instalare în sistemul de operare.

2. Configurați mediul pentru lucrul cu Gradle prin setarea variabilelor de mediu.

3. Verificați instalarea tastând pe linia de comandă pentru a obține numărul versiunii:$ gradle -v или $ gradle -h - для помощи в работе программы.

Exemplu de proiect pentru Java

Să ne uităm la un exemplu de proiect care utilizează structura standard de directoare Maven pentru codurile sursă și resurse.

Această structură include următoarele directoare:

  1. Creați aceste fișiere de proiect java rulând comanda în directorul de proiect: gradle init
  2. Selectați „Tipul de proiect”: aplicație - introduceți 2
  3. Selectați „Limba proiectului”: java - introduceți 3
  4. Proiect comun sau partajat - introduceți 1
  5. Selectați „Language DSL”: groovy - introduceți 1
  6. Selectați „cadru de testare a proiectului”: JUnit 4 - introduceți 1
  7. Introduceți numele proiectului și pachetului (de exemplu: mainProject).

Tot! Proiectul a fost creat și acum poate fi deschis în orice IDE și poate lucra direct cu directoarele și fișierele generate.

Să găsim fișierul de compilare Gradle al proiectului nostru pe calea /app/build.gradle:

pluginuri { // Aplicați pluginul aplicației pentru a adăuga suport pentru construirea unei aplicații CLI în Java. id „aplicație” } depozite { // Folosiți Maven Central pentru rezolvarea dependențelor. mavenCentral () } dependențe { // Folosește cadrul de testare JUnit. testImplementation 'junit:junit:4.13.1' // Această dependență este folosită de aplicație. implementare „com.google.guava:guava:30.0-jre” } cerere { // Definiți clasa principală pentru aplicație. mainClass = 'mainProject.App' }

Să construim proiectul folosind comanda gradle build:

> gradle build :compileJava :processResources :clase :borcan :asambla :compileTestJava :processTestResources :testClass :Test :Verifica :construi CONSTRUIREA DE SUCCES

Fișierul jar terminat va fi în /app/build/libs: app.jar

Curățați fișierele construite cu comanda: gradle clean

Pentru a executa acest jar din linia de comandă, să adăugăm aceste linii în fișierul build.gradle (versiunea java și clasa noastră principală):

java { sourceCompatibility = JavaVersion . VERSIUNEA_1_8 targetCompatibility = JavaVersion . VERSIUNEA_1_8 } borcan { manifest { atribute ( „Main-Class” : „mainProject.App” ) } }

Construim proiectul din nou cu comanda gradle build -> mergeți la directorul /app/build/libs și tastați: java -cp . -jar app.jar

Ar trebui să vedem salutul „Hello, World!”.

Ciclul de viață al sarcinilor în Gradle

Puteți vizualiza toate sarcinile prin comanda: sarcini gradle

Puteți vizualiza toate dependențele proiectului aplicației copil folosind comanda: gradle app:dependencies

Pluginul Java emulează ciclurile de viață Maven ca sarcini într-un grafic de dependență aciclic direcționat pentru intrările și ieșirile fiecărei sarcini. În acest exemplu, execuția sarcinii de construire depinde de rezultatul sarcinilor de verificare și asamblare . De asemenea, sarcina de verificare depinde de test , iar asamblarea depinde de borcan .

Gradle permite proiectelor să folosească o structură de directoare care diferă de convenția Maven . Următorul exemplu va lua în considerare un proiect în care codul sursă se află în directorul src/java în loc de src/main/java .

construi.gradle

aplicați pluginul: „java” sourceSets { principal { java { srcDirs = [ 'src/java' ] } } }


Asamblare multi-proiect

Pentru aplicațiile care constau din module, este convenabil să utilizați abordarea Gradle cu mai multe proiecte :

  1. Fiecare modul este localizat în propriul director separat.
  2. Fiecare modul poate include module copil, care vor fi localizate în directoare imbricate.
  3. Descrierea structurii multi-proiect se face în settings.gradle în directorul rădăcină al proiectului.
  4. Există un build.gradle în directorul rădăcină al proiectului care se poate personaliza singur și modulele copil.
  5. Fiecare modul copil poate avea aceleași două fișiere pentru a se configura singur și modulele sale secundare.
  6. Această abordare vă permite să rulați în mod convenabil sarcini pentru anumite module sau întregul proiect în ansamblu.

Sarcini principale

- Efectuarea sarcinilor în stadiul de construire ( testare, raportare, înregistrare etc. / călătorii către (rețea | servicii), în general, tot ceea ce poate face orice aplicație )

- Asamblarea bibliotecilor dependente ale proiectului pentru build, distribuția gradului de acces (cum ar fi modificatorii de acces în limbaje de programare) în interiorul codului de execuție

Structura principală a fișierului build.gradle

aplicație / build . gradle . kts // Blochează responsabil pentru conectarea pluginurilor pluginuri { id ( "org.jetbrains.kotlin.jvm" ) versiunea "1.4.31" aplicarea } // Principalele depozite din care sunt descărcate pluginurile depozite { mavenCentral () } // Dependențe pentru proiectul dvs dependențe { implementare ( platforma ( "org.jetbrains.kotlin:kotlin-bom" )) // un exemplu de adăugare a unui plugin la proiectul dvs. implementare ( "org.jetbrains.kotlin:kotlin-stdlib-jdk8" ) implementare ( "com.google.guava:guava:30.1-jre" ) testImplementation ( "org.jetbrains.kotlin:kotlin-test" ) testImplementation ( "org.jetbrains.kotlin:kotlin-test-junit" ) } // Clasa principală pentru rularea programului cerere { mainClass . set ( "demo.AppKt" ) }

Vezi și

Literatură

  • Muschko, B. și Dockter, H. Gradle în acțiune. - Manning Publications Company, 2013. - 456 p. — ISBN 9781617291302 .
  • Berglund, T. Gradle Dincolo de elementele de bază. - O'Reilly Media, 2013. - 80 p. — ISBN 9781449373825 .
  • Berglund, T. și McCullough, M. Construirea și testarea cu Gradle. - O'Reilly Media, 2011. - 110 p. — ISBN 9781449304638 .
  • Kousen , K. Gradle pentru Android. - O'Reilly Media, Incorporated, 2015. - 120 p. — ISBN 9781491947029 .
  • Ikkink, H.K. Ghid de implementare eficientă Gradle . - Editura Packt, 2012. - 350 p. — ISBN 9781849518116 .

Note

  1. https://github.com/gradle/gradle/releases/tag/v7.5.1
  2. Proiectul Gradle Open Source pe Open Hub: Pagina de limbi - 2006.
  3. Proiectul Gradle Open Source pe Open Hub: Pagina de licențe - 2006.
  4. https://docs.gradle.org/current/userguide/gradle_daemon.html Arhivat 1 noiembrie 2021 la Wayback Machine