Prilagođeni zadatak u Gradlama
1. Pregled
U ovom ćemo članku pokriti kako stvoriti prilagođeni zadatak u Gradleu. Pokazat ćemo novu definiciju zadatka pomoću skripte za izgradnju ili prilagođene vrste zadatka.
Uvod u Gradle potražite u ovom članku. Sadrži osnove Gradlea i - što je najvažnije za ovaj članak - uvod u zadaće Gradlea.
2. Prilagođena definicija zadatka iznutra graditi.gradle
Da bismo stvorili izravni Gradleov zadatak, moramo dodati njegovu definiciju u naš graditi.gradle datoteka:
zadatak dobrodošlice {doLast {println 'Dobro došli u Baeldung!' }}
Glavni cilj gornjeg zadatka je samo ispis teksta "Dobro došli u Baeldung!". Možemo provjeriti je li ovo zadatak je dostupan trčanjem zadaci gradle –sve naredba:
zadaci gradle --sve
Zadatak je na popisu ispod grupe Ostali zadaci:
Ostali zadaci ----------- dobrodošli
Može se izvršiti kao i bilo koji drugi Gradleov zadatak:
gradle dobrodošli
Rezultat je očekivan - "Dobro došli u Baeldung!" poruka.
Napomena: ako je opcija -svi nije postavljen, tada se ne vide zadaci koji pripadaju kategoriji „Ostalo“. Prilagođeni zadatak Gradle može pripadati drugoj grupi od "Ostalo" i može sadržavati opis.
3. Postavite grupu i opis
Ponekad je zgodno grupirati zadatke po funkcijama, pa su vidljivi u jednoj kategoriji. Možemo brzo postavljengrupa za naše prilagođene zadatke, samo definiranjem svojstva grupe:
zadatak dobrodošlice {grupa 'Kategorija uzoraka' doLast {println 'Dobro došli na Baeldung!' }}
Sada kada pokrenemo naredbu Gradle za popis svih dostupnih zadataka (-svi opcija više nije potrebna), vidjet ćemo naš zadatak u novoj grupi:
Primjeri zadataka kategorije --------------------- dobrodošli
Međutim, i drugima je korisno vidjeti za što je zadatak odgovoran. Možemo stvoriti opis koja sadrži kratke informacije:
zadatak dobrodošlice {opis grupe opisa uzoraka 'Zadaci koji prikazuju poruku dobrodošlice' doLast {println 'Dobro došli u Baeldung!' }}
Kada ispišemo popis dostupnih zadataka, izlaz će biti sljedeći:
Primjeri zadataka kategorije --------------------- dobrodošli - Zadaci koji pokazuju poruku dobrodošlice
Ova vrsta definicije zadatka naziva se ad-hoc definicija.
Dalje, korisno je stvoriti prilagodljiv zadatak koji se može ponovno koristiti u definiciji. Objasnit ćemo kako stvoriti zadatak od vrste i kako učiniti prilagodbu dostupnom korisnicima ovog zadatka.
4. Definirajte tip zadatka Gradle iznutra graditi.gradle
Gornji zadatak "dobrodošlice" nije moguće prilagoditi, stoga u većini slučajeva nije previše koristan. Možemo ga pokrenuti, ali ako nam treba u drugom projektu (ili potprojektu), tada moramo kopirati i zalijepiti njegovu definiciju.
Možemo brzo omogućiti prilagodbu zadatka stvaranjem vrste zadatka. Samo je vrsta zadatka definirana unutar skripte za izgradnju:
class PrintToolVersionTask proširuje DefaultTask {String tool @TaskAction void printToolVersion () {switch (tool) {case 'java': println System.getProperty ("java.version") break case 'groovy': println GroovySystem.version break default: throw new IllegalArgumentException ("Nepoznati alat")}}}
A prilagođeni tip zadatka jednostavna je klasa Groovy koja se proširuje Zadana zadaća - klasa koja definira provedbu standardnog zadatka. Postoje i druge vrste zadataka od kojih se možemo proširiti, ali u većini slučajeva, Zadana zadaća razred je odgovarajući izbor.
PrintToolVersionTaskzadatak sadrži svojstvo alata koje se instance mogu prilagoditi ovog zadatka:
String alat
Možemo dodati onoliko svojstava koliko želimo - imajte na umu da je to samo jednostavno polje klase Groovy.
Uz to sadrži metoda označena sa @TaskAction. Definira što ovaj zadatak radi. U ovom jednostavnom primjeru ispisuje verziju instalirane Java ili Groovy - ovisi o zadanoj vrijednosti parametra.
Da bismo pokrenuli prilagođeni zadatak na temelju stvorene vrste zadatka, moramo stvoriti novu instancu zadatka ovog tipa:
zadatak printJavaVersion (vrsta: PrintToolVersionTask) {alat 'java'}
Najvažniji dijelovi su:
- naš zadatak je PrintToolVersionTask tip, dakle kada se izvrši, potaknut će akciju definiranu u metodi označenoj s @TaskAction
- dodali smo prilagođenu vrijednost svojstva alata (Java) koji će koristiti PrintToolVersionTask
Kada pokrenemo gornji zadatak, izlaz je očekivan (ovisi o instaliranoj verziji Java):
> Zadatak: printJavaVersion 9.0.1
Ajmo sada stvoriti zadatak koji ispisuje instaliranu verziju Groovyja:
zadatak printGroovyVersion (vrsta: PrintToolVersionTask) {alat 'groovy'}
Koristi istu vrstu zadatka kao što smo definirali prije, ali ima drugačiju vrijednost svojstva alata. Kada izvršimo ovaj zadatak, ispisuje se verzija Groovy:
> Zadatak: printGroovyVersion 2.4.12
Ako nemamo previše prilagođenih zadataka, onda ih možemo izravno definirati u graditi.gradle datoteka (kao što smo učinili gore). Međutim, ako ih je više od nekoliko, onda i naši izgraditi.Datoteka gradle postaje teška za čitanje i razumijevanje.
Srećom, Gradle nudi neka rješenja za to.
5. Definirajte vrstu zadatka u buildSrc Mapa
Možemo definirati vrste zadataka u buildSrc mapa koja se nalazi na osnovnoj razini projekta. Gradle kompajlira sve što je unutra i dodaje tipove na stazu kako bi ga naša skripta za izgradnju mogla koristiti.
Naš tip zadatka koji smo definirali prije (PrintToolVersionTask) može se premjestiti u buildSrc / src / main / groovy / com / baeldung / PrintToolVersionTask.groovy. Moramo dodati samo neke uvoz iz API-ja Gradle u premješteni razred.
Možemo definirati neograničen broj vrsta zadataka u buildSrc mapu. Jednostavnije je održavati, čitati, a deklaracija vrste zadatka nije na istom mjestu kao instancacija zadatka.
Te tipove možemo koristiti na isti način na koji koristimo tipove definirane izravno u skripti za izgradnju. Moramo se sjetiti samo dodati odgovarajući uvoz.
6. U dodatku definirajte vrstu zadatka
Možemo definirati prilagođene vrste zadataka unutar prilagođenog Gradle dodatka. Pogledajte ovaj članak koji opisuje kako definirati prilagođeni dodatak Gradle, definiran u:
- graditi.gradle datoteka
- buildSrc mapa kao i ostali Groovyjevi razredi
Ovi prilagođeni zadaci bit će dostupni za našu izgradnju kada definiramo ovisnost o ovom dodatku. Imajte na umu da su dostupni i ad-hoc zadaci - ne samo prilagođene vrste zadataka.
7. Zaključak
U ovom smo uputstvu opisali kako stvoriti prilagođeni zadatak u Gradleu. Dostupno je puno dodataka koje možete koristiti u svom graditi.gradle datoteka koja će pružiti puno prilagođenih vrsta zadataka koje su vam potrebne.
Kao i uvijek, isječci koda dostupni su na Githubu.