Gradle

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 14. srpna 2019; kontroly vyžadují 30 úprav .
gradle
Typ nástroj pro automatizaci tvorby [d]
Zapsáno v Java , Groovy [2] a Kotlin
Operační systém multiplatformní
První vydání 2007
Hardwarová platforma Java virtuální stroj
Nejnovější verze
Stát aktivní
Licence Licence Apache 2.0 [3]
webová stránka gradle.org
 Mediální soubory na Wikimedia Commons

Gradle  je automatizovaný systém sestavování postavený na principech Apache Ant a Apache Maven , ale poskytuje DSL v Groovy a Kotlin místo tradiční formy reprezentace konfigurace projektu podobnou XML .

Na rozdíl od Apache Maven , který je založen na konceptu životního cyklu projektu, a Apache Ant , ve kterém je pořadí provádění úkolů (cílů) určováno závislostmi (závisí na), Gradle používá řízený acyklický graf k určení pořadí v jaké úkoly se provádějí.

Gradle byl navržen pro rozšiřitelná multiprojektová sestavení a podporuje model vodopádového vývoje , který určuje, které části stromu sestavení se nezměnily a které úlohy, které na těchto částech závisí, není třeba restartovat.

Hlavní pluginy jsou pro vývoj a nasazení aplikací Java , Groovy a Scala , ale existují pluginy pro další programovací jazyky : C++ , Swift , Kotlin a také Spring projekt s Spring Boot.

Má svého vlastního Gradle Daemon [4] – proces na pozadí pro urychlení sestavení projektu.

Instalace Gradle

1. Přejdeme na stránku stahování Archived 31. října 2021 na Wayback Machine a zvolíme pohodlnou metodu instalace do vašeho OS.

2. Nastavte prostředí pro práci s Gradle nastavením proměnných prostředí.

3. Ověřte instalaci zadáním do příkazového řádku, abyste získali číslo verze:$ gradle -v или $ gradle -h - для помощи в работе программы.

Ukázkový projekt pro Javu

Podívejme se na příklad projektu, který používá standardní adresářovou strukturu Maven pro zdrojové kódy a zdroje.

Tato struktura obsahuje následující adresáře:

  1. Vytvořte tyto soubory projektu Java spuštěním příkazu v adresáři projektu: gradle init
  2. Vyberte "Typ projektu": aplikace - zadejte 2
  3. Vyberte "Jazyk projektu": java - zadejte 3
  4. Společný projekt nebo sdílený – zadejte 1
  5. Vyberte "Jazyk DSL": groovy - zadejte 1
  6. Vyberte "rámec testování projektu" : JUnit 4 - zadejte 1
  7. Zadejte název projektu a balíčku (například: mainProject).

Všechno! Projekt byl vytvořen a nyní jej lze otevřít v libovolném IDE a pracovat přímo s vygenerovanými adresáři a soubory.

Najdeme soubor sestavení Gradle našeho projektu na cestě /app/build.gradle:

pluginy { // Aplikujte aplikační modul pro přidání podpory pro vytváření aplikací CLI v Javě. id 'aplikace' } úložiště { // K vyřešení závislostí použijte Maven Central. mavenCentral () } závislosti { // Použijte testovací rámec JUnit. testImplementation 'junit:junit:4.13.1' // Tuto závislost používá aplikace. implementace 'com.google.guava:guava:30.0-jre' } aplikace { // Definujte hlavní třídu pro aplikaci. mainClass = 'mainProject.App' }

Pojďme sestavit projekt pomocí příkazu gradle build:

> gradle build :compileJava :processResources :třídy :sklenice :shromáždit :compileTestJava :processTestResources :testClasses :test :šek :stavět BUDOVAT ÚSPĚŠNĚ

Hotový soubor jar bude v /app/build/libs: app.jar

Vyčistěte sestavené soubory pomocí příkazu: gradle clean

Chcete-li spustit tento jar z příkazového řádku, přidejte tyto řádky do souboru build.gradle (verze Java a naše hlavní třída):

java { sourceCompatibility = JavaVersion . VERSION_1_8 targetCompatibility = JavaVersion . VERSION_1_8 } sklenice { manifest { atributy ( 'Main-Class' : 'mainProject.App' ) } }

Projekt znovu sestavíme pomocí příkazu gradle build -> přejděte do adresáře /app/build/libs a napište: java -cp . -jar app.jar

Měli bychom vidět pozdrav „Ahoj, světe!“.

Životní cyklus úloh v Gradle

Všechny úkoly můžete zobrazit pomocí příkazu: gradle tasks

Všechny závislosti projektu podřízené aplikace můžete zobrazit pomocí příkazu: gradle app:dependencies

Java plugin emuluje životní cykly Maven jako úlohy v řízeném acyklickém grafu závislosti pro vstupy a výstupy každé úlohy. V tomto příkladu závisí provedení úlohy sestavení na výsledku úloh kontroly a sestavení . Také kontrolní úloha závisí na testu a sestavení závisí na jar .

Gradle také umožňuje projektům používat adresářovou strukturu, která se liší od konvence Maven . Následující příklad bude zvažovat projekt, kde je zdrojový kód v adresáři src/java namísto src/main/java .

build.gradle

použít plugin: 'java' sourceSets { hlavní { java { srcDirs = [ 'src/java' ] } } }


Víceprojektová montáž

Pro aplikace sestávající z modulů je vhodné použít víceprojektový přístup Gradle:

  1. Každý modul je umístěn ve vlastním samostatném adresáři.
  2. Každý modul může obsahovat podřízené moduly, které budou umístěny ve vnořených adresářích.
  3. Popis struktury více projektů se provádí v settings.gradle v kořenovém adresáři projektu.
  4. V kořenovém adresáři projektu je build.gradle, který může přizpůsobit sebe a podřízené moduly.
  5. Každý podřízený modul může mít stejné dva soubory pro konfiguraci sebe a svých podřízených modulů.
  6. Tento přístup umožňuje pohodlně spouštět úlohy pro konkrétní moduly nebo celý projekt jako celek.

Hlavní úkoly

- Provádění úkolů ve fázi sestavení ( testování, hlášení, protokolování atd. / výlety do (síť | služby), obecně vše, co může dělat jakákoli aplikace )

- Sestavení závislých knihoven projektu pro sestavení, distribuce stupně přístupu (jako modifikátory přístupu v programovacích jazycích) uvnitř spouštěcího kódu

Hlavní struktura souboru build.gradle

aplikace / sestavení . gradle . kts // Blok zodpovědný za připojení pluginů pluginy { id ( "org.jetbrains.kotlin.jvm" ) verze "1.4.31" aplikace } // Hlavní úložiště, ze kterých se stahují pluginy úložiště { mavenCentral () } // Závislosti pro váš projekt závislosti { implementace ( platforma ( "org.jetbrains.kotlin:kotlin-bom" )) // příklad přidání pluginu do vašeho projektu implementace ( "org.jetbrains.kotlin:kotlin-stdlib-jdk8" ) implementace ( "com.google.guava:guava:30.1-jre" ) testImplementation ( "org.jetbrains.kotlin:kotlin-test" ) testImplementation ( "org.jetbrains.kotlin:kotlin-test-junit" ) } // Hlavní třída pro spuštění programu aplikace { hlavní třída . set ( "demo.AppKt" ) }

Viz také

Literatura

  • Muschko, B. a Dockter, H. Gradle v akci. - Manning Publications Company, 2013. - 456 s. — ISBN 9781617291302 .
  • Berglund, T. Gradle Beyond the Basics. - O'Reilly Media, 2013. - 80 s. — ISBN 9781449373825 .
  • Berglund, T. a McCullough, M. Budování a testování s Gradlem. - O'Reilly Media, 2011. - 110 s. — ISBN 9781449304638 .
  • Kousen, K. Gradle pro Android. - O'Reilly Media, Incorporated, 2015. - 120 s. — ISBN 9781491947029 .
  • Ikkink, H. K. Průvodce efektivní implementací Gradle . - Packt Publishing, 2012. - 350 s. — ISBN 9781849518116 .

Poznámky

  1. https://github.com/gradle/gradle/releases/tag/v7.5.1
  2. The gradle Open Source Project na Open Hub: Jazyková stránka - 2006.
  3. The gradle Open Source Project na Open Hub: Stránka licencí - 2006.
  4. https://docs.gradle.org/current/userguide/gradle_daemon.html Archivováno 1. listopadu 2021 na Wayback Machine