Útmutató a Gradle Wrapperhez

1. Áttekintés

A Gradle-t a fejlesztők általában használják a projekt összeállításának életciklusának kezelésére. Ez az összes új Android projekt alapértelmezett választási lehetősége a build eszköznek.

Ebben az oktatóanyagban megismerhetjük a Gradle Wrapper programot, amely egy kísérő segédprogram, amely megkönnyíti a projektek terjesztését.

2. Gradle Wrapper

A Gradle-alapú projekt felépítéséhez telepítenünk kell a Gradle-t a gépünkbe. Ha azonban a telepített verziónk nem egyezik a projekt verziójával, akkor valószínűleg sok inkompatibilitási problémával kell szembenéznünk.

Gradle Wrapper, más néven Csomagolás röviden: megoldja ezt a problémát. Ez egy szkript, amely a Gradle feladatokat deklarált verzióval futtatja. Ha a deklarált verzió nincs telepítve, a Wrapper telepíti a szükséges verziót.

A Wrapper fő előnyei, hogy:

  • Készítsen egy projektet a Wrapper segítségével bármilyen gépen, anélkül, hogy előbb telepítenie kellene a Gradle-t
  • Van egy fix Gradle verzió. Ez újrafelhasználható és erőteljesebb konstrukciókat eredményez a CI csővezetékeken
  • Könnyen frissíthet egy új Gradle verzióra a Wrapper definíciójának megváltoztatásával

A következő szakaszokban olyan Gradle-feladatokat futtatunk, amelyekhez a Gradle helyi telepítését kell megkövetelni.

2.1. Csomagoló fájlok generálása

A Wrapper használatához létre kell hoznunk bizonyos fájlokat. Ezeket a fájlokat a beépített Gradle feladatnak hívjuk csomagolás. Ne feledje, hogy ezeket a fájlokat csak egyszer kell létrehoznunk.

Most futtassuk a csomagolás feladat a projekt könyvtárunkban:

$ gradle burkoló 

Lássuk a parancs kimenetét:

Nézzük meg, melyek ezek a fájlok:

  • gradle-wrapper.jar kódot tartalmaz a Gradle terjesztés letöltéséhez gradle-wrapper.tulajdonságok fájl
  • gradle-wrapper.tulajdonságok Wrapper futási tulajdonságokat tartalmaz - ami a legfontosabb, a Gradle terjesztésnek az aktuális projekttel kompatibilis verziója
  • gradlew az a szkript, amely a Gradle feladatokat hajtja végre a Wrapperrel
  • gradlew.bat az a gradlew egyenértékű kötegelt parancsfájl Windows gépekhez

Alapértelmezés szerint a csomagolás feladat a gépre jelenleg telepített Gradle verzióval generál Wrapper fájlokat. Szükség esetén megadhatunk egy másik verziót:

$ gradle wrapper --gradle-6.3 verzió 

Javasoljuk, hogy ellenőrizze a Wrapper fájlokata forrásszabályozó rendszer mint a GitHub. Így biztosítjuk, hogy más fejlesztők is futtathassák a projektet a Gradle telepítése nélkül.

2.2. Gradle parancsok futtatása a Wrapperrel

Bármely Gradle feladatot futtathatunk a Wrapperrel cserével gradle val vel gradlew.

Az elérhető feladatok felsorolásához használhatjuk a osztályos feladatok parancs:

$ gradlew feladatok

Vessünk egy pillantást a kimenetre:

Súgófeladatok ---------- buildEnvironment - Megjeleníti az összes buildscript-függőséget, amelyet a 'gradle-wrapper' root projektben deklaráltak. components - Megjeleníti a 'gradle-wrapper' gyökérprojekt által létrehozott összetevőket. [inkubáló] függőségek - Megjeleníti a root projekt 'gradle-wrapper' deklarált összes függőségét. dependencyInsight - A root projekt 'gradle-wrapper' egy adott függőségének betekintését jeleníti meg. dependComponents - Megjeleníti a 'gradle-wrapper' root projekt összetevőinek függő összetevőit. [inkubálás] súgó - Súgó üzenetet jelenít meg. model - Megjeleníti a 'gradle-wrapper' root projekt konfigurációs modelljét. [inkubálás] outgoingVariants - Megjeleníti a 'gradle-wrapper' root projekt kimenő változatait. projektek - A 'gradle-wrapper' gyökérprojekt alprojektjeit jeleníti meg. tulajdonságok - Megjeleníti a 'gradle-wrapper' root projekt tulajdonságait. feladatok - Megjeleníti a 'gradle-wrapper' root projektből futtatható feladatokat.

Mint láthatjuk, a kimenet ugyanaz, mint amit a feladat futtatásával kapnánk gradle parancs.

3. Gyakori kérdések

Most nézzünk meg néhány gyakori problémát, amelyekkel szembesülhetünk, amikor a Wrapperrel dolgozunk.

3.1. Globális .gitignore, amely figyelmen kívül hagyja az összes jar fájlt

Egyes szervezetek nem engedélyezik a fejlesztők számára, hogy ellenőrizzék a jar fájlokat a forrásvezérlő rendszerükben. Az ilyen projekteknek általában szabályuk van a világon .gitignore fájl az összes jar fájl figyelmen kívül hagyásához. Ezért a gradle-wrapper.jar a fájl nincs bejelölve a git adattárba. Emiatt a Wrapper feladatok nem futtathatóak más gépeken. Ilyen esetekben, hozzá kell adnunk a gradle-wrapper.jar reszelő erőteljesen git:

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

Hasonlóképpen lehet projektspecifikus is .gitignore fájl, amely figyelmen kívül hagyja a jar fájlokat. Megoldhatjuk akár a .gitignore szabály vagy a burkoló jar fájljának erőteljes hozzáadásával, a fentiek szerint.

3.2. Hiányzik a Wrapper mappa

Ha egy Wrapper-alapú projektbe ellenőrzünk, elfelejthetjük a csomagolás mappa, amely a gradle mappába. De mint fentebb láthattuk, a csomagolás mappa két kritikus fájlt tartalmaz: gradle-wrapper.jar és gradle-wrapper.tulajdonságok.

E fájlok nélkül hibákat kapunk, amikor a Gradle feladatokat futtatjuk a Wrapperrel. Ebből kifolyólag, ellenőriznünk kell a csomagolás mappát a forrásvezérlő rendszerbe.

3.3. Törölt csomagolófájlok

A fokozat alapú projektek tartalmazzák a .gradle mappa, amely gyorsítótárat tárol a Gradle feladatok felgyorsítása érdekében. Időnként ki kell törölnünk a gyorsítótárat a Gradle build problémák elhárításához. Általában az egészet eltávolítjuk .gradle mappába. De tévedhetünk a Burkolóval gradle mappát a .gradle mappát, és távolítsa el azt is. Ezt követően mindenképpen szembesülni fogunk a Gradle feladatok futtatásával a Wrapperrel.

Megoldhatjuk ezt a problémát a legfrissebb változások forrásból történő kihúzásával. Alternatív megoldásként regenerálhatjuk a Wrapper fájlokat.

4. Következtetés

Ebben az oktatóanyagban megismerhettük a Gradle Wrappert és annak alapvető használatát. Megtanultunk néhány gyakori problémát is, amelyekkel a Gradle Wrapperrel dolgozhatunk.

Szokás szerint a projektet generált Gradle Wrapper fájlokkal ellenőrizhetjük a GitHubon.


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