Zápis vlastných doplnkov Gradle

Tento článok je súčasťou série: • Úvod do programu Gradle

• Ant vs Maven vs Gradle

• Písanie vlastných doplnkov Gradle (aktuálny článok). • Vytvorenie tučnej nádoby v Gradle

1. Úvod

Gradle je veľmi populárny nástroj na vytváranie, ktorý sa často cení pre vysoko prispôsobiteľný proces vytvárania.

Dnes si ukážeme, ako vytvoriť vlastné doplnky Gradle, ktoré nám umožnia upraviť proces zostavovania nad rámec toho, čo môžeme dosiahnuť pomocou štandardnej konfigurácie.

2. Umiestnenie zdroja doplnkov

Náš kód môžeme umiestniť na niekoľko rôznych miest. Všetky majú určité výhody a nevýhody.

2.1. Zostavte skript

Zdrojový kód nášho doplnku môžeme jednoducho vložiť do samotného skriptu na zostavenie. Získate tak automatickú kompiláciu a zahrnutie doplnku.

Je to veľmi jednoduché, náš doplnok však nebude viditeľný mimo zostavovacieho skriptu. Z tohto dôvodu ho nemôžeme znovu použiť v iných zostavovacích skriptoch.

2.2. BuildSrc Priečinok

Ďalšou možnosťou, ktorú môžeme použiť, je umiestnenie zdrojového kódu nášho pluginu do priečinka buildSrc / src / main / java priečinok.

Keď spustíte Gradle, skontroluje sa existencia buildSrc priečinok. Ak existuje, Gradle automaticky vytvorí a zahrnie náš doplnok.

Toto nám dá možnosť zdieľať náš plugin medzi rôznymi zostavovacími skriptmi, ale stále ho nebudeme môcť použiť v iných projektoch.

2.3. Samostatný projekt

Nakoniec môžeme náš doplnok vytvoriť ako samostatný projekt, vďaka ktorému je doplnok znovu použiteľný v rôznych projektoch.

Ak ho však chcete použiť v externom projekte, budeme ho musieť zoskupiť do súboru jar a pridať do projektu.

3. Náš prvý doplnok

Začnime od základov - každý doplnok Gradle musí implementovať com.gradle.api.Plugin rozhranie.

Rozhranie je všeobecné, takže ho môžeme parametrizovať rôznymi typmi parametrov. Typ parametra je zvyčajne org.gradle.api.Projekt.

Môžeme však použiť rôzne parametre typu, aby sa doplnok použil v rôznych fázach životnosti:

  • použitím org.gradle.api.Nastavenia bude mať za následok použitie doplnku na skript nastavení
  • použitím org.gradle.api.Gradle bude mať za následok použitie doplnku na inicializačný skript

Najjednoduchší plugin, ktorý môžeme vytvoriť, je ahoj svet prihláška:

verejná trieda GreetingPlugin implementuje doplnok {@Override public void apply (projektový projekt) {project.task ("ahoj") .doLast (úloha -> System.out.println ("ahoj gradle!")); }}

Teraz ho môžeme použiť pridaním riadku do nášho zostavovacieho skriptu:

použiť plugin: GreetingPlugin

Teraz, po zavolaní gradle ahoj, uvidíme „Hello Gradle“ správa v denníkoch.

4. Konfigurácia doplnku

Väčšina doplnkov bude potrebovať prístup k externej konfigurácii zo zostavovacieho skriptu.

Môžeme to urobiť pomocou rozširujúce objekty:

verejná trieda GreetingPluginExtension {private String greeter = "Baeldung"; private String message = "Správa z pluginu!" // štandardné getre a setre}

Teraz pridajme nové rozširujúci objekt do našej triedy doplnkov:

@Override public void apply (projekt projektu) {GreetingPluginExtension rozšírenie = project.getExtensions () .create ("pozdrav", GreetingPluginExtension.class); project.task ("hello") .doLast (task -> {System.out.println ("Hello," + extension.getGreeter ()); System.out.println ("Mám pre vás správu:" + rozšírenie .getMessage ());}); }

Teraz, keď voláme gradle ahoj, uvidíme predvolenú správu definovanú v našom GreetingPluginExtension.

Ale pretože sme vytvorili rozšírenie, môžeme na to použiť ukončenie vo vnútri skriptu zostavenia:

pozdrav {greeter = "Stranger" message = "Správa zo skriptu zostavenia"}

5. Samostatný projekt doplnku

Na vytvorenie samostatných doplnkov Gradle je potrebné vykonať ešte trochu práce.

5.1. Nastaviť

Najskôr musíme importovať závislosť API Gradle - čo je celkom jednoduché:

závislosti {compile gradleApi ()}

Upozorňujeme, že to isté vyžaduje Maven gradle-tooling-api závislosť - z úložiska Gradle:

  org.gradle gradle-tooling-api 3.0 org.gradle gradle-core 3.0 poskytované repo.gradle.org //repo.gradle.org/gradle/libs-releases-local/ 

5.2. Zapojenie doplnku

Aby sme spoločnosti Gradle umožnili nájsť implementáciu nášho samostatného pluginu, musíme vytvoriť súbor vlastností v priečinku src / main / resources / META-INF /gradle-plugins.

Súbor prostriedkov musí mať názov, ktorý sa zhoduje s ID doplnku. Takže ak má náš plugin ID org.baeldung.greeting, presná cesta k súboru by bola META-INF / gradle-plugins / org.baeldung.greeting.properties.

Ďalej môžeme definovať triedu implementácie pluginu:

 implementation-class = org.gradle.GreetingPlugin

The trieda implementácie by sa mal rovnať celému názvu balíka našej triedy doplnkov.

5.3. Vytvára sa ID doplnku

Existujú určité pravidlá a konvencie, ktoré musí ID doplnku dodržiavať v Gradle. Väčšina z nich je podobná pravidlám pre názvy balíkov v prostredí Java:

  • Môžu obsahovať iba alfanumerické znaky, „.“ a „-“
  • ID musí mať aspoň jeden znak „.“ oddeľuje názov domény od názvu doplnku
  • Menné priestory org.gradle a com.gradleware sú obmedzené
  • Identifikátor nemôže začínať ani končiť znakom „.“
  • Žiadne dva alebo viac za sebou nasledujúcich znakov „.“ znaky sú povolené

Nakoniec existuje konvencia, podľa ktorej by ID doplnku malo byť malým písmenom, ktoré nasleduje za konvenciou obráteného názvu domény.

Hlavný rozdiel medzi názvami balíkov Java a názvami doplnkov Gradle je v tom, že názov balíka je zvyčajne podrobnejší ako ID doplnku.

5.4. Publishing Plugin

Ak chceme zverejniť náš plugin, aby sme ho mohli znova použiť v externých projektoch, máme dva spôsoby, ako to dosiahnuť.

Po prvé, môžeme náš plugin JAR publikovať do externého úložiska ako Maven alebo Ivy.

Prípadne môžeme použiť portál doplnkov Gradle. Toto umožní nášmu pluginu prístup k širokej komunite Gradle. Viac informácií o publikovaní projektov v úložisku Gradle nájdete v dokumentácii k portálu Gradle Plugin.

5.5. Vývojový doplnok Java Gradle

Keď píšeme naše pluginy v Jave, môžeme ťažiť z Vývojový doplnok Java Gradle.

To sa automaticky skompiluje a pridá gradleApi () závislosti. Bude tiež vykonávať validáciu metadát doplnku ako súčasť gradle jar úloha.

Doplnok môžeme pridať pridaním nasledujúceho bloku do nášho zostavovacieho skriptu:

doplnky {id 'java-gradle-plugin'}

6. Testovanie doplnkov

Aby sme vyskúšali, či náš plugin funguje správne a či je správne použitý v Projekt, môžeme použiť org.gradle.testfixtures.ProjectBuilder vytvoriť inštanciu Projekt.

Potom môžeme skontrolovať, či bol doplnok použitý a či sú v našej správe správne úlohy Projekt inštancia. Môžeme použiť štandard JUnit testy na to:

@Test public void greetingTest () {Project project = ProjectBuilder.builder (). Build (); project.getPluginManager (). apply ("com.baeldung.greeting"); assertTrue (project.getPluginManager () .hasPlugin ("com.baeldung.greeting")); assertNotNull (project.getTasks (). getByName ("ahoj")); }

7. Zhrnutie

V tomto článku sme si ukázali základy písania vlastných doplnkov v Gradle. Ak sa chcete podrobnejšie zaoberať vytváraním doplnkov, pozrite si dokumentáciu Gradle.

A ako vždy, všetky ukážky kódu nájdete na Githube.

Ďalšie » Vytvorenie tučnej nádoby v Gradle « Predchádzajúci Ant vs Maven vs Gradle

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