Egyéni feladat fokozatban
1. Áttekintés
Ebben a cikkben kitérünk arra, hogyan hozzon létre egy egyéni feladatot a Gradle-ben. Megmutatunk egy új feladatdefiníciót egy build szkript vagy egy egyedi feladattípus segítségével.
A Gradle bevezetését lásd ebben a cikkben. Ez tartalmazza a Gradle alapjait és - ami a legfontosabb a cikk számára - a Gradle feladatok bevezetését.
2. Belső egyéni feladatmeghatározás épít.gradle
Egyenes Gradle feladat létrehozásához hozzá kell adnunk a definícióját a feladatunkhoz épít.gradle fájl:
task welcome {doLast {println 'Üdvözöllek a Baeldungban!' }}
A fenti feladat fő célja csupán az „Üdvözöljük a Baeldungban!” Szöveg nyomtatása. Ellenőrizhetjük, hogy ez van-e feladat elérhető futással gradle feladatok –minden parancs:
gradle feladatok - mind
A feladat a csoport alatti listán található Egyéb feladatok:
Egyéb feladatok ----------- szívesen
Ugyanúgy végrehajtható, mint bármely más Gradle feladat:
gradle szívesen
A kimenet a vártnak felel meg - a „Welcome to the Baeldung!” üzenet.
Megjegyzés: ha opció -minden nincs beállítva, akkor az „Egyéb” kategóriába tartozó feladatok nem láthatók. Az Egyéni fokozat feladat más csoportba tartozhat, mint az „Egyéb”, és tartalmazhat leírást.
3. Állítsa be a Csoport és leírás elemet
Néha hasznos a feladatokat funkciók szerint csoportosítani, így azok egy kategória alatt láthatók. Gyorsan tudunk készletcsoportot az egyéni feladatainkhoz, csak egy csoport tulajdonságának meghatározásával:
task welcome {group 'Sample category' doLast {println 'Welcome on the Baeldung!' }}
Most, amikor a Gradle parancsot futtatjuk az összes rendelkezésre álló feladat (-minden opcióra már nincs szükség), új csoport alatt látjuk a feladatunkat:
Minta kategóriafeladatok --------------------- szívesen
Azonban másoknak is hasznos, ha meglátják, mi a feladat felelős. Tudunk hozzon létre egy leírást amely rövid információkat tartalmaz:
task welcome {csoport "Minta kategória" leírás "Feladatok, amelyek egy üdvözlő üzenetet mutatnak" doLast {println "Üdvözöljük a Baeldungban!" }}
Amikor kinyomtatjuk az elérhető feladatok listáját, a kimenet a következő lesz:
Minta kategóriafeladatok --------------------- welcome - Feladatok, amelyek üdvözlő üzenetet mutatnak
Ezt a fajta feladatmeghatározást nevezzük ad-hoc meghatározás.
A továbbiakban előnyös egy testreszabható feladat létrehozása, amely a definíciót újra felhasználhatja. Bemutatjuk, hogyan hozhat létre feladatot egy típusból, és hogyan tehet elérhetővé testreszabást a feladat felhasználói számára.
4. Határozza meg a Gradle Task Type Inside-t épít.gradle
A fenti „welcome” feladat nem testreszabható, így a legtöbb esetben nem túl hasznos. Futtathatjuk, de ha szükségünk van rá egy másik projektben (vagy alprojektben), akkor át kell másolnunk és beillesztenünk a definícióját.
Gyorsan tudunk engedélyezze a feladat testreszabását egy feladattípus létrehozásával. Pusztán egy feladat típusa van megadva a build szkriptben:
class PrintToolVersionTask kiterjeszti DefaultTask {Karaktereszköz @TaskAction void printToolVersion () {switch (tool) {case 'java': println System.getProperty ("java.version") break case 'groovy': println GroovySystem.version break default: dob új IllegalArgumentException ("Ismeretlen eszköz")}}}
A Az egyedi feladattípus egy egyszerű Groovy osztály, amely kiterjeszti DefaultTask - az osztály, amely meghatározza a szokásos feladatmegvalósítást. Vannak más feladattípusok is, amelyekből kibővíthetjük, de a legtöbb esetben a DefaultTask osztály a megfelelő választás.
PrintToolVersionTaskA feladat eszköz tulajdonságot tartalmaz, amelyet példányok testreszabhatnak ennek a feladatnak:
Vonós eszköz
Annyi tulajdonságot adhatunk hozzá, amennyit csak akarunk - ne feledje, hogy ez csak egy egyszerű Groovy osztályú mező.
Ezenkívül tartalmazza metódussal kiegészítve @TaskAction. Meghatározza, hogy mit csinál ez a feladat. Ebben az egyszerű példában kinyomtatja a telepített Java vagy Groovy verzióját - az adott paraméter értékétől függ.
Egy egyéni feladat futtatásához a létrehozott feladattípus alapján szükségünk van hozzon létre egy új ilyen típusú feladatpéldányt:
feladat printJavaVersion (típus: PrintToolVersionTask) {eszköz 'java'}
A legfontosabb részek:
- feladatunk a PrintToolVersionTask típus, tehát végrehajtásakor kiváltja a metódussal kiegészített műveletet @TaskAction
- hozzáadtunk egy testreszabott eszköz tulajdonság értéket (Jáva), amelyet a PrintToolVersionTask
A fenti feladat futtatásakor a kimenet a vártnak felel meg (a telepített Java verziótól függ):
> Feladat: printJavaVersion 9.0.1
Most hozzunk létre egy feladatot, amely kinyomtatja a Groovy telepített verzióját:
feladat printGroovyVersion (típus: PrintToolVersionTask) {eszköz 'groovy'}
Ugyanazt a feladattípust használja, mint amit korábban definiáltunk, de más eszköz tulajdonságértéke van. Amikor ezt a feladatot végrehajtjuk, kinyomtatja a Groovy verziót:
> Feladat: printGroovyVersion 2.4.12
Ha nincs túl sok egyéni feladatunk, akkor azokat közvetlenül meghatározhatjuk a épít.gradle fájl (mint fentebb tettük). Ha azonban néhánynál több van, akkor a miénk épít.A gradle fájl nehezen olvasható és érthetővé válik.
Szerencsére Gradle kínál erre néhány megoldást.
5. Határozza meg a Feladat típusát a buildSrc Mappa
Tudunk definiálja a feladattípusokat a buildSrc mappa, amely a root projekt szintjén található. A Gradle mindent összeállít, ami benne van, és típusokat ad hozzá az osztályúthoz, hogy a build szkriptünk használni tudja.
A feladattípusunk, amelyet korábban definiáltunk (PrintToolVersionTask) áthelyezhetők a buildSrc / src / main / groovy / com / baeldung / PrintToolVersionTask.groovy. Csak néhányat kell hozzáfűznünk importálás a Gradle API-ból beköltözött osztályba.
Korlátlan számú feladattípust határozhatunk meg a buildSrc mappába. Könnyebb karbantartani, olvasni, és a feladattípus deklaráció nem ugyanazon a helyen, mint a feladat példányosítása.
Ezeket a típusokat ugyanúgy használhatjuk, mint közvetlenül a build szkriptben definiált típusokat. Csak arra kell emlékeznünk, hogy megfelelő importot adjunk hozzá.
6. Határozza meg a Feladat típusát a beépülő modulban
Egyéni Gradle beépülő modulban meghatározhatunk egyedi feladattípusokat. Kérjük, olvassa el ezt a cikket, amely leírja, hogyan definiálható az egyéni Gradle bővítmény, amelyet a következők határoznak meg:
- épít.gradle fájl
- buildSrc mappa más Groovy osztályokként
Ezek az egyéni feladatok akkor lesznek elérhetők a buildünk számára, amikor meghatározzuk a függőséget ettől a bővítménytől. Felhívjuk figyelmét, hogy ad-hoc feladatok is rendelkezésre állnak - nem csak egyedi feladattípusok.
7. Következtetés
Ebben az oktatóanyagban kitértünk arra, hogyan lehet egyéni feladatot létrehozni a Gradle-ben. Nagyon sok olyan plugin áll rendelkezésre, amelyeket felhasználhat a épít.gradle fájl, amely sok egyedi feladattípust biztosít, amire szüksége van.
Mint mindig, a kódrészletek is elérhetők a Githubon.