Gradle: build.gradle vs. settings.gradle vs. gradle.properties

1. Prehľad

V tomto článku Pozrime sa na rôzne konfiguračné súbory projektu Gradle Java. Uvidíme tiež podrobnosti skutočného zostavenia.

V tomto článku nájdete všeobecné úvodné informácie o Gradle.

2. build.gradle

Predpokladajme, že práve vytvárame nový projekt Java spustením gradle init –typ java-application. Ostane nám nový projekt s nasledujúcou adresárovou a súborovou štruktúrou:

build.gradle gradle wrapper gradle-wrapper.jar gradle-wrapper.properties gradlew gradlew.bat settings.gradle src main java App.java test java AppTest.java

Môžeme zvážiť build.gradle súbor ako srdce alebo mozog projektu. Výsledný súbor pre náš príklad vyzerá takto:

pluginy {id 'java' id 'application'} mainClassName = 'App' dependencies {compile 'com.google.guava: guava: 23.0' testCompile 'junit: junit: 4.12'} repozitáre {jcenter ()}

Skladá sa z kódu Groovy, presnejšie povedané, jazyka Groovy DSL (jazyk špecifický pre doménu) na popis zostavení. Tu môžeme definovať naše závislosti a tiež pridať veci, ako sú úložiská Maven používané na riešenie závislostí.

Základnými stavebnými kameňmi Gradle sú projekty a úlohy. V tomto prípade, keďže java plugin je aplikovaný, všetky nevyhnutné úlohy pre zostavenie Java projektu sú definované implicitne. Niektoré z týchto úloh sú zhromaždiť, skontrolovať, stavať, jar, javadoc, čistý a mnoho ďalších.

Tieto úlohy sú tiež nastavené tak, aby popisovali užitočný graf závislostí pre projekt Java, čo znamená, že zvyčajne stačí vykonať úlohu zostavenia a program Gradle (a doplnok Java) zabezpečí vykonanie všetkých potrebných úloh. .

Keby sme potrebovali ďalšie špecializované úlohy, ako napríklad vytvorenie obrazu Dockeru, išlo by to tiež do build.gradle spis. Najjednoduchšia možná definícia úloh vyzerá takto:

task hello {doLast {println 'Hello Baeldung!' }}

Úlohu môžeme spustiť tak, že ju zadáme ako argument pre Gradle CLI takto:

$ gradle -q ahoj Ahoj Baeldung!

Neurobí to nič užitočné, ale vytlačte „Ahoj, Baeldung!“ samozrejme.

V prípade zostavenia viacerých projektov by sme pravdepodobne mali niekoľko rôznych build.gradle súbory, jeden pre každý projekt.

The build.gradle súbor je spustený proti Projekt inštancia, s jednou inštanciou projektu vytvorenou pre každý subprojekt. Vyššie uvedené úlohy, ktoré môžu byť definované v build.gradle súbor, nachádza sa vo vnútri Projekt napríklad ako súčasť zbierky Úloha predmety. Samotné úlohy pozostávajú z viacerých akcií ako usporiadaný zoznam.

V našom predchádzajúcom príklade sme pridali Groovy uzáver pre tlač „Hello Baeldung!“ na koniec tohto zoznamu zavolaním na doLast (uzávierka) na našom AhojÚloha objekt. Počas popravy Úloha, Gradle vykonáva každú svoju Akcie v poriadku zavolaním na Action.execute (T) metóda.

3. nastavenia.gradle

Spoločnosť Gradle tiež generuje a nastavenia.gradle spis:

rootProject.name = 'gradle-example'

The nastavenia.gradle súbor je tiež Groovy skript.

Na rozdiel od build.gradle spis, iba jeden nastavenia.gradle súbor sa vykonáva na základe zostavenia Gradle. Môžeme ho použiť na definovanie projektov zostavovania viacerých projektov.

Okrem toho je tiež možné zaregistrovať kód ako súčasť rôznych hákov životného cyklu zostavy.

Rámec si vyžaduje existenciu nastavenia.gradle v zostave viacerých projektov, zatiaľ čo pre zostavenie jedného projektu je voliteľná.

Tento súbor sa použije po vytvorení súboru nastavenie inštanciu zostavy vykonaním súboru proti nej a tým jej konfiguráciou. To znamená, že definujeme podprojekty v našom nastavenia.gradle súbor takto:

zahrnúť „foo“, „bar“

a Gradle volá void include (String ... projectPaths) metóda na nastavenie napríklad pri vytváraní zostavy.

4. gradle.vlastnosti

Gradle nevytvára gradle.vlastnosti súbor predvolene. Môže sa nachádzať na rôznych miestach, napríklad v koreňovom adresári projektu, vo vnútri priečinka GRADLE_USER_HOME alebo na mieste určenom -Dgradle.user.home príznak príkazového riadku.

Tento súbor pozostáva z párov kľúč - hodnota. Môžeme ho použiť na konfiguráciu správania samotného rámca a je to alternatíva k použitiu príznakov príkazového riadku pre konfiguráciu.

Príklady možných klávesov sú:

  • org.gradle.caching = (pravda, nepravda)
  • org.gradle.daemon = (true, false)
  • org.gradle.parallel = (true, false)
  • org.gradle.logging.level = (ticho, varovať, životný cyklus, informácie, ladenie)

Tento súbor môžete tiež použiť na pridanie vlastností priamo do súboru Projekt objekt, napr. vlastnosť s jej menným priestorom: org.gradle.project.property_to_set

Ďalším prípadom použitia je zadanie parametrov JVM, ako je tento:

org.gradle.jvmargs = -Xmx2g -XX: MaxPermSize = 256m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

Upozorňujeme, že je potrebné spustiť proces JVM na analýzu súboru gradle.vlastnosti spis. To znamená, že tieto parametre JVM ovplyvňujú iba samostatne spustené procesy JVM.

5. Zostavte v skratke

Všeobecný životný cyklus zostavenia Gradle môžeme zhrnúť takto, za predpokladu, že ho nespúšťame ako démon:

  • Spúšťa sa ako nový proces JVM
  • Analyzuje to gradle.vlastnosti súbor a podľa toho nakonfiguruje Gradle
  • Ďalej vytvorí nastavenie napríklad pre zostavenie
  • Potom vyhodnotí nastavenia.gradle podať proti nastavenie objekt
  • Vytvára hierarchiu Projekty, na základe nakonfigurovaného nastavenie objekt
  • Nakoniec každý vykoná build.gradle spis proti jeho projektu

6. Záver

Videli sme, ako rôzne konfiguračné súbory Gradle plnia rôzne vývojové účely. Môžeme ich použiť na konfiguráciu zostavy Gradle aj samotného Gradle na základe potrieb nášho projektu.


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