Vodič za omot Gradle

1. Pregled

Gradle obično koriste programeri za upravljanje životnim ciklusom izrade svog projekta. To je zadani izbor alata za izgradnju za sve nove Android projekte.

U ovom uputstvu naučit ćemo o Gradle Wrapperu, pratećem uslužnom programu koji olakšava distribuciju projekata.

2. Omotač Gradle

Da bismo izgradili projekt zasnovan na Gradleu, moramo imati Gradle instaliran u našem stroju. Međutim, ako se naša instalirana verzija ne podudara s verzijom projekta, vjerojatno ćemo se suočiti s mnogim problemima s nekompatibilnošću.

Gradle Wrapper, također pozvan Omot ukratko, rješava ovaj problem. To je skripta koja pokreće Gradle zadatke s deklariranom verzijom. Ako deklarirana verzija nije instalirana, Wrapper instalira potrebnu.

Glavne prednosti Wrappera su u tome što možemo:

  • Izradite projekt s Wrapperom na bilo kojem stroju, bez potrebe da prvo instalirate Gradle
  • Imajte fiksnu verziju Gradlea. To daje ponovnu upotrebu i robusnije građevine na CI cjevovodima
  • Jednostavno nadogradite na novu verziju Gradle promjenom definicije Wrapper

U sljedećim odjeljcima izvodit ćemo zadaće Gradle koji zahtijevaju lokalnu instalaciju Gradlea.

2.1. Generiranje omotnih datoteka

Da bismo koristili Wrapper, moramo generirati neke određene datoteke. Te ćemo datoteke generirati pomoću ugrađenog Gradle zadatka pod nazivom omot. Imajte na umu da ove datoteke moramo generirati samo jednom.

Ajmo sada pokrenuti omot zadatak u našem direktoriju projekta:

$ gradle omot 

Pogledajmo izlaz ove naredbe:

Pogledajmo koje su to datoteke:

  • gradle-omot.jar sadrži kod za preuzimanje Gradle distribucije naveden u gradle- wrapper.svojstva datoteka
  • gradle- wrapper.svojstva sadrži svojstva vremena izvođenja Wrapper - što je najvažnije, verzija distribucije Gradle koja je kompatibilna s trenutnim projektom
  • gradlew je skripta koja izvršava Gradle zadatke s Wrapperom
  • gradlew.bat je gradlew ekvivalentna batch skripta za Windows strojeve

Prema zadanim postavkama omot zadatak generira Wrapper datoteke s verzijom Gradle koja je trenutno instalirana na stroju. Po potrebi možemo navesti drugu verziju:

$ gradle omot --gradle-verzija 6.3 

Preporučili smo provjeru datoteka Wrappersustav upravljanja izvorom poput GitHub-a. Na ovaj način osiguravamo da drugi programeri mogu pokrenuti projekt bez potrebe za instaliranjem Gradlea.

2.2. Pokretanje Gradle naredbi s omotom

Zamjenom možemo pokrenuti bilo koji Gradleov zadatak s omotom gradle s gradlew.

Da bismo popisali dostupne zadatke, možemo koristiti zadaci gradlew naredba:

Zadaci $ gradlew

Pogledajmo izlaz:

Zadaci pomoći ---------- buildEnvironment - Prikazuje sve ovisnosti buildscripta deklarirane u korijenskom projektu 'gradle-wrapper'. komponente - Prikazuje komponente proizvedene u korijenskom projektu 'gradle-wrapper'. [inkubiranje] ovisnosti - prikazuje sve ovisnosti deklarirane u korijenskom projektu 'gradle-wrapper'. dependencyInsight - Prikazuje uvid u određenu ovisnost u korijenskom projektu 'gradle-wrapper'. dependComponents - prikazuje ovisne komponente komponenata u korijenskom projektu 'gradle-wrapper'. [inkubacija] pomoć - prikazuje poruku pomoći. model - prikazuje model konfiguracije korijenskog projekta 'gradle-wrapper'. [inkubacija] outgoingVariants - prikazuje odlazne varijante korijenskog projekta 'gradle-wrapper'. projekti - prikazuje potprojekte korijenskog projekta 'gradle-wrapper'. svojstva - prikazuje svojstva root projekta 'gradle-wrapper'. zadaci - prikazuje zadatke kojima se može upravljati iz korijenskog projekta 'gradle-wrapper'.

Kao što vidimo, izlaz je isti kao i kada bismo izvršavali ovaj zadatak s gradle naredba.

3. Zajednička pitanja

Pogledajmo sada neke uobičajene probleme s kojima se možemo suočiti u radu s Wrapperom.

3.1. Global .gitignore koji ignorira sve Jar datoteke

Neke organizacije ne dopuštaju programerima da provjeravaju jar datoteke u svom sustavu kontrole izvora. Tipično takvi projekti imaju globalno pravilo .gitignore datoteka zanemariti sve jar datoteke. Stoga je gradle-omot.jar datoteka nije prijavljena u git spremište. Iz tog se razloga zadaci Wrapper ne uspijevaju pokrenuti na drugim strojevima. U takvim slučajevima, moramo dodati gradle-omot.jar datoteku na silu git:

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

Slično tome, možda imamo projekt specifičan .gitignore datoteka koja zanemaruje jar datoteke. To možemo popraviti opuštanjem .gitignore pravilom ili snažnim dodavanjem datoteke omota omota, kao što je gore prikazano.

3.2. Nedostaje mapa omota

Kada prijavljujemo projekt temeljen na Wrapperu, možda ćemo zaboraviti uključiti omot mapa koja postoji unutar gradle mapu. Ali kao što smo vidjeli gore, omot mapa sadrži dvije ključne datoteke: gradle-omot.jar i gradle- wrapper.svojstva.

Bez ovih datoteka dobit ćemo pogreške prilikom izvođenja zadataka Gradle s Wrapperom. Stoga, moramo provjeriti omot mapu u sustav upravljanja izvorima.

3.3. Uklonjene datoteke omota

Projekti temeljeni na Gradleu sadrže a .gradle mapa koja sprema predmemoriju radi ubrzavanja zadataka Gradle. Ponekad moramo očistiti predmemoriju kako bismo riješili probleme s gradnjom Gradle-a. Obično uklanjamo cijelu .gradle mapu. Ali možda pogrešimo Wrappera gradle mapa s .gradle mapu i uklonite je. Nakon toga, definitivno ćemo se suočiti s problemima prilikom pokušaja pokretanja Gradle zadataka s Wrapperom.

Taj problem možemo riješiti povlačenjem najnovijih promjena iz izvora. Alternativno, možemo regenerirati datoteke Wrapper.

4. Zaključak

U ovom uputstvu saznali smo o Gradle Wrapperu i njegovoj osnovnoj uporabi. Također smo saznali o nekim uobičajenim problemima s kojima se možemo suočiti u radu s Gradle Wrapperom.

Kao i obično, projekt možemo provjeriti generiranim datotekama Gradle Wrapper na GitHubu.