Správa závislostí v Gradle

1. Prehľad

V tomto tutoriáli sa pozrieme na deklarovanie závislostí v skripte zostavenia Gradle. Pre naše príklady použijeme Gradle 6.7.

2. Typická štruktúra

Začnime jednoduchým skriptom Gradle pre projekty Java:

doplnky {id 'java'} repozitáre {mavenCentral ()} závislosti {implementácia 'org.springframework.boot: spring-boot-starter: 2.3.4.RELEASE' testImplementation 'org.springframework.boot: spring-boot-starter-test : 2.3.4.RELEASE '}

Ako je vidieť vyššie, máme tri bloky kódu: doplnky, úložiská, a závislosti.

Po prvé, doplnky blok nám hovorí, že sa jedná o projekt Java. Po druhé, závislosti blok deklaruje verziu 2.3.4.UVOĽNENIE štartér s pružinou závislosť potrebná na zostavenie zdrojového kódu výroby projektu. Ďalej tiež uvádza, že je potrebné vykonať testovaciu sadu projektu test štartovacej pružiny zostaviť.

Zostavenie Gradle sťahuje všetky závislosti nadol z úložiska Maven Central, ako je definované v úložiská blokovať.

Zamerajme sa na to, ako môžeme definovať závislosti.

3. Konfigurácie závislostí

Existujú rôzne konfigurácie, v ktorých môžeme deklarovať závislosti. V tejto súvislosti si môžeme zvoliť, že budeme viac či menej presní, ako uvidíme neskôr.

3.1. Ako vyhlásiť závislosti

Konfigurácia má na začiatok 4 časti:

  • skupina - identifikátor organizácie, spoločnosti alebo projektu
  • názov Identifikátor závislosti
  • verzia - ten, ktorý chceme importovať
  • klasifikátor - užitočné rozlišovať závislosti od toho istého skupina, názova verzia

Závislosti môžeme deklarovať v dvoch formátoch. Zmluvný formát nám umožňuje vyhlásiť závislosť za a String:

implementácia 'org.springframework.boot: spring-boot-starter: 2.3.4.RELEASE'

Namiesto toho nám rozšírený formát umožňuje napísať ho ako Mapa:

implementačná skupina:„org.springframework.boot“, názov: „spring-boot-starter“, verzia: „2.3.4.RELEASE“

3.2. Typy konfigurácie

Gradle ďalej poskytuje mnoho typov konfigurácií závislostí:

  • api - slúži na vysvetlenie závislostí a ich vystavenie v triede. Napríklad pri implementácii knižnice tak, aby bola transparentná pre spotrebiteľov knižnice.
  • implementácia- požadované na zostavenie zdrojového kódu výroby a sú čisto interné. Nie sú vystavené mimo obalu
  • kompilovaťLen- používajú sa, keď je potrebné ich deklarovať iba v čase kompilácie, napríklad anotácie iba pre zdroj alebo procesory anotácií. Nezobrazujú sa v runtime triede alebo v testovacej triede
  • compileOnlyApi - používajú sa, ak sa to vyžaduje v čase kompilácie a keď musia byť pre spotrebiteľov viditeľné v triede
  • runtimeOnly- slúži na deklaráciu závislostí, ktoré sú vyžadované iba za behu programu a nie sú k dispozícii v čase kompilácie
  • testImplementácia- požadované na zostavenie testov
  • testCompileOnly- požadované iba v čase kompilácie testu
  • testRuntimeOnly- požadované iba za behu testu

Mali by sme poznamenať, že najnovšie verzie Gradle zastarávajú niektoré konfigurácie, ako napríklad zostaviť, testCompile, beh programu, a testRuntime. V čase písania tohto článku sú stále k dispozícii.

4. Typy externých závislostí

Poďme sa venovať typom externých závislostí, s ktorými sa stretávame v skripte zostavenia Gradle.

4.1. Závislosti modulov

Najbežnejším spôsobom na vyhlásenie závislosti je v podstate referencovanie úložiska. Úložisko Gradle je kolekcia modulov organizovaných organizáciou skupina, názova verzia.

V skutočnosti Gradle sťahuje závislosti zo špecifikovaného úložiska vo vnútri servera Úložisko blok:

úložiská {mavenCentral ()} závislosti {implementácia 'org.springframework.boot: spring-boot-starter: 2.3.4.RELEASE'}

4.2. Závislosti súborov

Vzhľadom na to, že projekty nie vždy používajú automatickú správu závislostí, niektoré projekty organizujú závislosti ako súčasť zdrojového kódu alebo lokálneho súborového systému. Musíme teda určiť presné umiestnenie, kde sú závislosti.

Na tento účel môžeme použiť súbory zahrnúť zbierku závislostí:

závislosti {runtimeOnly files ('libs / lib1.jar', 'libs / lib2.jar')}

Podobne môžeme použiť filetree zahrnúť hierarchiu jar súbory v adresári:

závislosti {runtimeOnly fileTree ('libs') {include '* .jar'}}

4.3. Závislosti od projektu

Pretože pri opätovnom použití kódu môže jeden projekt závisieť na druhom, ponúka nám Gradle príležitosť urobiť to.

Povedzme, že chceme vyhlásiť, že náš projekt závisí od zdieľané projekt:

 závislosti {implementačný projekt (': shared')} 

4.4. Závislosti gradle

V určitých prípadoch, napríklad pri vývoji úlohy alebo pluginu, môžeme definovať závislosti, ktoré patria k používanej verzii Gradle:

závislosti {implementation gradleApi ()}

5. buildScript

Ako sme už videli predtým, môžeme deklarovať externé závislosti nášho zdrojového kódu a testov vo vnútri závislosti blokovať. Podobne buildScript blok nám umožňuje deklarovať závislosti na zostave Gradle, ako sú doplnky tretích strán a triedy úloh. Najmä bez a buildScript bloku, môžeme používať iba out-of-the-box funkcie Gradle.

Ďalej deklarujeme, že chceme použiť doplnok Spring Boot stiahnutím z Maven Central:

buildscript {repositories {mavenCentral ()} závislosti {classpath 'org.springframework.boot: spring-boot-gradle-plugin: 2.3.4.RELEASE'}} použiť plugin: 'org.springframework.boot'

Preto musíme určiť zdroj, z ktorého budeme sťahovať externé závislosti, pretože neexistuje predvolený.

Vyššie popísané sa týka starších verzií Gradle. Namiesto toho je v novších verziách možné použiť stručnejšiu formu:

doplnky {id 'org.springframework.boot' verzia '2.3.4.RELEASE'}

6. Záver

V tomto článku sme sa zaoberali závislosťami Gradle, ich deklaráciou a rôznymi typmi konfigurácie.

Vzhľadom na tieto body je zdrojový kód tohto článku k dispozícii na stránkach GitHub.


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