Úvod do Gradle

Tento článok je súčasťou série: • Úvod do programu Gradle (aktuálny článok) • Ant vs Maven vs Gradle

• Zápis vlastných doplnkov Gradle

• Vytvorenie tučnej nádoby v Gradle

1. Prehľad

Gradle je systém správy zostáv založený na Groovy navrhnutý špeciálne pre vytváranie projektov založených na prostredí Java.

Pokyny na inštaláciu nájdete tu.

2. Stavebné bloky - projekty a úlohy

V Gradle sa zostavy skladajú z jedného alebo viacerých projektov a každý projekt sa skladá z jednej alebo viacerých úloh.

Projekt v Gradle môže byť zostavením a jar, vojna alebo dokonca a PSČ spis.

Úloha je jeden kus práce. Môže to zahŕňať kompiláciu tried alebo vytváranie a publikovanie archívov Java / Web.

Jednoduchú úlohu možno definovať ako:

task ahoj {doLast {println 'Baeldung'}}

Ak vykonáme vyššie uvedenú úlohu pomocou gradle -q ahoj príkaz z rovnakého miesta kde build.gradle sa nachádza, mali by sme vidieť výstup v konzole.

2.1. Úlohy

Gradleove skripty na zostavenie nie sú nič iné ako Groovy:

task toLower {doLast {String someString = 'HELLO FROM BAELDUNG' println "Originál:" + someString println "Malé písmeno:" + someString.toLowerCase ()}}

Môžeme definovať úlohy, ktoré závisia od iných úloh. Závislosť úlohy možno definovať odovzdaním znaku dependsOn: taskName argument v definícii úlohy:

task helloGradle {doLast {println 'Hello Gradle!' }} úloha zBaeldungu (záleží na: helloGradle) {doLast {println "Som z Baeldungu"}}

2.2. Pridanie správania k úlohe

Môžeme definovať úlohu a vylepšiť ju o nejaké ďalšie správanie:

task helloBaeldung {doLast {println 'I will be started second'}} helloBaeldung.doFirst {println 'I will be started first'} helloBaeldung.doLast {println 'I will be mentioned tretí'} helloBaeldung {doLast {println 'I will be vykonaný štvrtý '}}

najskôr a doLast pridať akcie na hornú a dolnú časť zoznamu akcií a možno definovať viackrát v jednej úlohe.

2.3. Pridanie vlastností úlohy

Môžeme tiež definovať vlastnosti:

úloha ourTask {ext.theProperty = "theValue"} 

Tu sa chystáme "hodnota" ako vlastníctvo z naša úloha úloha.

3. Správa doplnkov

V Gradle existujú dva typy doplnkov - scenár, a binárne.

Aby každá doplnková služba mohla využívať ďalšie výhody, musí prejsť dvoma fázami: riešiaci a uplatnenie.

Riešenie znamená nájsť správnu verziu doplnkovej nádoby a pridať ju do triedna cesta projektu.

Prihlasovanie doplnky sa vykonávajú Plugin.apply (T)na projekte.

3.1. Aplikácia skriptových doplnkov

V aplugin.gradle, môžeme definovať úlohu:

úloha odPlugin {doLast {println "Som z pluginu"}}

Ak chceme tento doplnok použiť na náš projekt build.gradle súbor, všetko, čo musíme urobiť, je pridať tento riadok do nášho build.gradle:

podať žiadosť z: 'aplugin.gradle' 

Teraz sa vykonáva gradle úlohy príkaz by mal zobraziť odPlugin v zozname úloh.

3.2. Aplikácia binárnych doplnkov pomocou doplnkov DSL

V prípade pridania binárneho doplnku jadra môžeme pridať krátke názvy alebo ID doplnku:

pluginy {id 'application'}

Teraz bežať úloha z žiadosť plugin by mal byť k dispozícii v projekte na vykonanie ľubovoľného spustiteľný jar. Ak chcete použiť doplnok pre komunitu, musíme spomenúť plne kvalifikované ID doplnku:

doplnky {id "org.shipkit.bintray" verzia "0.9.116"}

Teraz, Shipkit úlohy by mali byť k dispozícii dňa gradle úlohy zoznam.

Obmedzenia doplnkov DSL sú:

  • Nepodporuje Groovy kód vo vnútri doplnky blokovať
  • doplnky blok musí byť vyhlásením na najvyššej úrovni v zostavovacích skriptoch projektu (iba zostavovacie skripty {} blok je povolený pred ním)
  • Pluginy DSL nie je možné zapísať do pluginu skriptov, nastavenia.gradle súboru alebo v init skriptoch

Pluginy DSL sa stále inkubujú. Konfigurácia DSL a iná konfigurácia sa môže v neskorších verziách Gradle zmeniť.

3.3. Starší postup pri uplatňovaní doplnkov

Pluginy môžeme aplikovať aj pomocou „Použiť doplnok“:

použiť plugin: 'war'

Ak potrebujeme pridať komunitný doplnok, musíme do triedy classpath buildu pridať externý jar buildscript {} blokovať.

Potom, môžeme použiť doplnok v zostavovacích skriptoch, aleaž po akomkoľvek existujúcom doplnky {} blokovať:

buildscript {repositories {maven {url "//plugins.gradle.org/m2/"}} závislosti {classpath "org.shipkit: shipkit: 0.9.117"}} použiť plugin: "org.shipkit.bintray-release"

4. Správa závislostí

Gradle podporuje veľmi flexibilný systém riadenia závislostí, je kompatibilný so širokou škálou dostupných prístupov.

Najlepšie postupy pre správu závislostí v Gradle sú správa verzií, dynamické vytváranie verzií, riešenie konfliktov verzií a správa tranzitívnych závislostí.

4.1. Konfigurácia závislosti

Závislosti sú zoskupené do rôznych konfigurácií. Konfigurácia má názov a môžu sa navzájom rozširovať.

Ak použijeme doplnok Java, budeme mať compile, testCompile, runtime konfigurácie dostupné na zoskupenie našich závislostí. The predvolené ckonfigurácia sa rozširuje “beh programu".

4.2. Deklarovanie závislostí

Pozrime sa na príklad pridania niektorých závislostí (Spring a Hibernate) pomocou niekoľkých rôznych spôsobov:

závislosti {kompilovať skupinu: 'org.springframework', názov: 'spring-core', verzia: '4.3.5.RELEASE' kompilovať 'org.springframework: spring-core: 4.3.5.RELEASE', 'org.springframework: spring-aop: 4.3.5.RELEASE 'kompilácia ([skupina:' org.springframework ', názov:' spring-core ', verzia:' 4.3.5.RELEASE '], [skupina:' org.springframework ', meno : 'spring-aop', verzia: '4.3.5.RELEASE']) testCompile ('org.hibernate: hibernate-core: 5.2.12.Final') {transitive = true} runtime (skupina: 'org.hibernate' , názov: 'hibernate-core', verzia: '5.2.12.Final') {transitive = false}}

Deklarujeme závislosti v rôznych konfiguráciách: zostaviť, testCompilea beh programu v rôznych formátoch.

Niekedy potrebujeme závislosti, ktoré majú viac artefaktov. V takýchto prípadoch môžeme pridať notácie iba pre artefakty @ názov_rozšírenia (alebo ext v rozšírenej podobe) na stiahnutie požadovaného artefaktu:

runtime "org.codehaus.groovy: groovy-all: [chránené e-mailom]" runtime skupina: 'org.codehaus.groovy', názov: 'groovy-all', verzia: '2.4.11', ext: 'jar'

Tu sme pridali @jar notácia na stiahnutie iba artefaktu jar bez závislostí.

Na pridanie závislostí do akýchkoľvek lokálnych súborov môžeme použiť niečo také:

kompilovať súbory ('libs / joda-time-2.2.jar', 'libs / junit-4.12.jar') kompilovať fileTree (dir: 'libs', zahrnúť: '* .jar')

Ak sa chceme vyhnúť prechodným závislostiam,môžeme to urobiť na úrovni konfigurácie alebo na úrovni závislosti:

konfigurácie {testCompile.exclude module: 'junit'} testCompile ("org.springframework.batch: spring-batch-test: 3.0.7.RELEASE") {vylúčiť modul: 'junit'}

5. Zostavenia viacerých projektov

5.1. Budujte životný cyklus

V inicializačnej fáze Gradle určuje, ktoré projekty sa zúčastnia na zostavení viacerých projektov.

Toto sa zvyčajne spomína v nastavenia.gradle súbor, ktorý sa nachádza v koreňovom adresári projektu. Gradle tiež vytvára inštancie zúčastnených projektov.

Vo fáze konfigurácie sa všetky vytvorené inštancie projektov konfigurujú na základe konfigurácie funkcií Gradle na požiadanie.

V tejto funkcii sú nakonfigurované iba požadované projekty na vykonávanie konkrétnej úlohy. Týmto spôsobom sa čas konfigurácie výrazne zníži pri zostavovaní veľkého množstva projektov. Táto funkcia sa stále inkubuje.

Nakoniec vo fáze vykonávania sa vykoná podmnožina vytvorených a nakonfigurovaných úloh. Môžeme zahrnúť kód do nastavenia.gradle a build.gradle súbory vnímať tieto tri fázy.

V nastavenia.gradle :

println 'Vo fáze inicializácie.'

V build.gradle :

println 'Vo fáze konfigurácie.' úloha nakonfigurovaná {println 'Tiež vo fáze konfigurácie.' } úloha execFirstTest {doLast {println 'Počas fázy vykonávania.' }} task execSecondTest {doFirst {println 'Spočiatku počas fázy vykonávania.' } doLast {println 'Nakoniec počas fázy vykonávania.' } println 'Vo fáze konfigurácie.' }

5.2. Vytváranie zostavy viacerých projektov

Môžeme vykonať gradle init príkazom v koreňovom priečinku vytvorte kostru pre oba nastavenia.gradle a build.gradle spis.

Všetky bežné konfigurácie sa zachovajú v skripte na zostavenie root:

allprojects {repositories {mavenCentral ()}} subprojects {version = '1.0'}

Súbor nastavení musí obsahovať názov koreňového projektu a názov subprojektu:

rootProject.name = 'multi-project-builds' zahŕňajú 'pozdrav-knižnica', 'zdravší'

Teraz musíme mať pomenovaných niekoľko priečinkov podprojektov pozdravná knižnica a pozdravujem mať ukážku stavby viacerých projektov. Každý čiastkový projekt musí mať individuálny skript na zostavenie, aby mohol nakonfigurovať svoje individuálne závislosti a ďalšie potrebné konfigurácie.

Ak by sme chceli mať svoje pozdravujem projekt závislý od pozdravná knižnica, musíme zahrnúť závislosť do zostavovacieho skriptu súboru pozdravujem:

závislosti {kompilovať projekt (': pozdrav-knižnica')}

6. Používanie zavinovačky Gradle

Ak projekt Gradle má gradlew súbor pre Linux a Windows gradlew.bat súbor pre Windows, na zostavenie projektu nemusíme inštalovať Gradle.

Ak vykonáme gradlew stavať vo Windows a ./gradlew build v Linuxe distribúcia Gradle uvedená v gradlew súbor sa stiahne automaticky.

Ak by sme do nášho projektu chceli pridať obal Gradle:

obal gradle --gradle-verzia 4.2.1

Príkaz je potrebné vykonať z koreňa projektu. Takto sa vytvoria všetky potrebné súbory a priečinky, ktoré umožnia viazanie balíka Gradle na projekt. Ďalším spôsobom, ako urobiť to isté, je pridať úlohu wrapper do zostavovacieho skriptu:

wrapper úlohy (typ: Wrapper) {gradleVersion = '4.2.1'}

Teraz musíme vykonať zavinovačka úloha a úloha zviaže náš projekt na obal. Okrem toho gradlew súbory, a zavinovačka priečinok sa generuje vo vnútri priečinka gradle priečinok obsahujúci nádobu a súbor vlastností.

Ak chceme prejsť na novú verziu Gradle, stačí zmeniť záznam v gradle-zavinovačka.vlastnosti.

7. Záver

V tomto článku sme sa pozreli na program Gradle a zistili sme, že má väčšiu flexibilitu oproti iným existujúcim nástrojom na zostavenie, pokiaľ ide o riešenie konfliktov verzií a správu tranzitívnych závislostí.

Zdrojový kód tohto článku je k dispozícii na stránkach GitHub.

Ďalšie » Ant vs Maven vs Gradle

$config[zx-auto] not found$config[zx-overlay] not found