Sprievodca baličkou Gradle

1. Prehľad

Gradle vývojári bežne používajú na správu životného cyklu zostavenia projektu. Je to predvolená voľba nástroja na zostavenie pre všetky nové projekty pre Android.

V tomto výučbe sa dozvieme o sprievodnom nástroji Gradle Wrapper, ktorý uľahčuje distribúciu projektov.

2. Zavinovačka na gradle

Na zostavenie projektu založeného na Gradle musíme mať v našom stroji nainštalovaný Gradle. Ak sa však naša nainštalovaná verzia nezhoduje s verziou projektu, pravdepodobne budeme čeliť mnohým problémom s nekompatibilitou.

Zavinovačka Gradle, tiež nazývaná Zavinovačka v skratke tento problém rieši. Je to skript, ktorý spúšťa úlohy Gradle s deklarovanou verziou. Ak deklarovaná verzia nie je nainštalovaná, Wrapper nainštaluje požadovanú.

Hlavné výhody balíčka Wrapper sú to, že môžeme:

  • Vytvorte projekt s programom Wrapper na ľubovoľnom stroji bez toho, aby ste najskôr museli inštalovať Gradle
  • Majte pevnú verziu Gradle. To poskytuje opakovane použiteľné a robustnejšie zostavenia na potrubiach CI
  • Ľahko inovujte na novú verziu Gradle zmenou definície obálky

V ďalších častiach budeme spúšťať úlohy Gradle, ktoré si vyžadujú lokálnu inštaláciu Gradle.

2.1. Generovanie obalových súborov

Aby sme mohli používať Wrapper, musíme vygenerovať niektoré konkrétne súbory. Tieto súbory vygenerujeme pomocou vstavanej úlohy Gradle s názvom zavinovačka. Upozorňujeme, že tieto súbory musíme vygenerovať iba raz.

Teraz spustime zavinovačka úloha v našom adresári projektu:

$ gradle zavinovačka 

Pozrime sa na výstup tohto príkazu:

Pozrime sa, čo sú tieto súbory:

  • gradle-wrapper.jar obsahuje kód na stiahnutie distribúcie Gradle uvedenej v gradle-wrapper.properties spis
  • gradle-wrapper.properties obsahuje vlastnosti runtime modulu Wrapper - čo je najdôležitejšie, verzia distribúcie Gradle, ktorá je kompatibilná s aktuálnym projektom
  • gradlew je skript, ktorý vykonáva úlohy Gradle pomocou nástroja Wrapper
  • gradlew.bat je gradlew ekvivalentný dávkový skript pre počítače so systémom Windows

V predvolenom nastavení je zavinovačka úloha vygeneruje súbory Wrapper s verziou Gradle, ktorá je momentálne nainštalovaná v stroji. V prípade potreby môžeme určiť inú verziu:

$ gradle wrapper --gradle-verzia 6.3 

Odporúčali sme skontrolovať súbory Wrappersystém riadenia zdrojov ako GitHub. Týmto spôsobom zabezpečíme, aby ďalší vývojári mohli spustiť projekt bez nutnosti inštalácie Gradle.

2.2. Spúšťanie príkazov Gradle s programom Wrapper

S Wrapperom môžeme spustiť ktorúkoľvek úlohu Gradle nahradením gradle s gradlew.

Na zoznam dostupných úloh môžeme použiť gradlew úlohy príkaz:

$ gradlew úlohy

Poďme sa pozrieť na výstup:

Úlohy pomocníka ---------- buildEnvironment - Zobrazí všetky závislosti zostavenia, deklarované v koreňovom projekte „gradle-wrapper“. komponenty - Zobrazí komponenty vyrobené koreňovým projektom 'gradle-wrapper'. [inkubácia] závislostí - Zobrazí všetky závislosti deklarované v koreňovom projekte „gradle-wrapper“. dependencyInsight - Zobrazí prehľad konkrétnej závislosti v koreňovom projekte 'gradle-wrapper'. dependentComponents - Zobrazí závislé komponenty komponentov v koreňovom projekte 'gradle-wrapper'. [inkubácia] pomoc - Zobrazí správu s pomocou. model - Zobrazí konfiguračný model koreňového projektu 'gradle-wrapper'. [inkubácia] outgoingVariants - Zobrazí odchádzajúce varianty koreňového projektu 'gradle-wrapper'. projects - Zobrazí čiastkové projekty koreňového projektu 'gradle-wrapper'. vlastnosti - Zobrazí vlastnosti koreňového projektu 'gradle-wrapper'. tasks - Zobrazí úlohy spustiteľné z koreňového projektu 'gradle-wrapper'.

Ako vidíme, výstup je rovnaký, aký by sme dostali pri spustení tejto úlohy pomocou gradle príkaz.

3. Bežné problémy

Pozrime sa teraz na niekoľko bežných problémov, s ktorými sa môžeme stretnúť pri práci s programom Wrapper.

3.1. Globálny .gitignore, ktorý ignoruje všetky súbory Jar

Niektoré organizácie neumožňujú vývojárom skontrolovať súbory jar do ich systému riadenia zdrojov. Takéto projekty majú spravidla globálne pravidlo .gitignore súbor ignorovať všetky súbory jar. Preto gradle-wrapper.jar súbor nie je začiarknutý v úložisku git. Z tohto dôvodu sa úlohy balíka Wrapper nedajú spustiť na iných počítačoch. V takých prípadoch, musíme pridať gradle-wrapper.jar súbor silou mocou git:

git add -f gradle / wrapper / gradle-wrapper.jar

Podobne môžeme mať projekt .gitignore súbor, ktorý ignoruje súbory jar. Opraviť to môžeme uvoľnením .gitignore pravidlom alebo silným pridaním súboru zavinovacej nádoby, ako je uvedené vyššie.

3.2. Chýba obálka

Pri prihlásení do projektu založeného na obale môžeme zabudnúť zahrnúť zavinovačka priečinok, ktorý existuje vo vnútri priečinka gradle priečinok. Ale ako sme videli vyššie, zavinovačka priečinok obsahuje dva dôležité súbory: gradle-wrapper.jar a gradle-wrapper.properties.

Bez týchto súborov dostaneme chyby pri spustení úloh Gradle pomocou programu Wrapper. Preto musíme skontrolovať zavinovačka priečinok do systému riadenia zdrojov.

3.3. Odstránené obalové súbory

Projekty založené na gradle obsahujú a .stupeň priečinok, ktorý ukladá vyrovnávaciu pamäť, aby sa urýchlili úlohy v Gradle. Niekedy musíme vyčistiť medzipamäť, aby sme mohli vyriešiť problémy s vytváraním Gradle. Zvyčajne odstránime celú .stupeň priečinok. Môžeme si však Wrappera pomýliť gradle priečinok s .stupeň priečinok a tiež ho odstráňte. Potom sa určite stretneme s problémami, keď sa pokúsime spustiť úlohy programu Gradle pomocou programu Wrapper.

Tento problém môžeme vyriešiť stiahnutím najnovších zmien zo zdroja. Prípadne môžeme regenerovať súbory Wrapper.

4. Záver

V tomto tutoriáli sme sa dozvedeli o Gradle Wrapper a jeho základnom použití. Dozvedeli sme sa tiež o niektorých bežných problémoch, s ktorými sa môžeme stretnúť pri práci s Gradle Wrapper.

Ako obvykle, môžeme projekt skontrolovať s vygenerovanými súbormi Gradle Wrapper na GitHub.