Ú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.