Suprasti priklausomybės valdymą „Gradle“
„Gradle“ saugyklos naudojamos priklausomybės valdymui. Yra du „Gradle“ priklausomybių komponentai: priklausomybės ir projekto leidiniai.
Kai kuriate projektą „Gradle“, jums greičiausiai reikės kitų kūrėjų bibliotekų. Tarkime, kad jums reikia „Apache Commons Lang“ bibliotekos, kad būtų galima atlikti specialias eilutes. Taigi, norint, kad jūsų kodas veiktų, jo reikia savo klasės kelyje. „Apache Commons Lang“ gali prireikti papildomų bibliotekų, apie kurias nežinote. „Gradle“ leidžia jums pasakyti konkrečią priklausomybę, kurios reikia jūsų projektui, ir ji pateks į nurodytą saugyklą, pvz., „Maven“ ar „Ivy“, ir išsiaiškins visas susijusias priklausomybes, atsisiųs failus ir automatiškai nustatys jums.
„Gradle“ taip pat turi galimybę paskelbti savo dirbinius. Galite nuspręsti, ką paskelbimas reiškia jūsų konkrečiu atveju. Galite jį paskelbti vietoje arba paskelbti „Maven“ ar „Ivy“ saugykloje.
„Gradle“ saugyklos pavyzdys
Tarkime, mes norime naudoti „StringUtils“ klasę iš „Apache Commons Lang“ bibliotekos. Sukurkime tokį režisierių:
Labas pasauli| - statyti.gradlas
- src
| - pagrindinis
'- java
'-- Labas pasauli
'-- Labas pasauli.java
Bendruomenėje.java, galite įdėti šį kodą:
importuoti org.apache.bendri.lang3.„StringUtils“;visuomenės klasės kolegos
public static void main (String [] argumentuoja)
Styginiai sveikinimai = "Sveikas pasauli!";
Sistema.išėjo.println (sveikinimai);
Sistema.išėjo.println (StringUtils.swapCase (sveikinimai));
Ir pastate.gradle failą galite įdėti:
taikyti papildinį: „java“versija = '1.0 '
saugyklos
„mavenCentral“ ()
priklausomybės
sudaryti grupę: 'org.apache.commons “, pavadinimas:„ commons-lang3 “, versija:„ 3.7 '
stiklainis
iš konfigūracijų.sudaryti.rinkti zipTree it
Aptarkime, kas vyksta aukščiau esančiame komponavimo scenarijuje. Gradlei liepiama ieškoti „Maven“ saugykloje, skirtoje „commons-lang3“ 3 versijai.7. Gradlei taip pat liepiama pakuoti priklausomybes į stiklainio failą. Jei pašalinsite iš konfigūracijų.sudaryti.rinkti eilutę zipTree it, tada paleisdami programą turėsite įtraukti išorines priklausomybes į klasės kelią.
Dabar iš šakninio aplanko galite paleisti komponavimą naudodami komandą
$ gradle stiklainisTurėtumėte pamatyti tokius rezultatus:
$ gradle stiklainis
Atsisiųskite https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Atsisiųskite https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
42-ieji-tėvai.pom
Atsisiųskite https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.stiklainiukas
STEBĖKITE SĖKMINGAI per 6 sekundes
2 užduotys, kurias galima atlikti: 1 įvykdyta, 1 atnaujinta
Versiją galite paleisti taip:
$ java -cp build / libs / helloworld-1.0.stiklainis kolegų pasaulisLabas pasauli!
Labas pasauli!
Jei nebūtumėte įtraukę priklausomybių į savo versiją, „StringUtils“ klasės nebūtų įtrauktos į jūsų kolegas-1.0.stiklainio failas. Ir jūs būtumėte gavę tokią klaidą:
$ java -cp build / libs / helloworld-1.0.stiklainis kolegų pasaulisLabas pasauli!
Išimtis „pagrindinėje“ java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils pas kolegas.pagrindinis (kolegos pasaulis.java: 11)
Sukėlė: java.lang.„ClassNotFoundException“: org.apache.bendri.lang3.„StringUtils“
ties java.neto.URLClassLoader.findClass (URLClassLoader.java: 381)
ties java.lang.„ClassLoader“.„loadClass“ („ClassLoader“.java: 424)
prie saulės.kita.Paleidimo priemonė „$ AppClassLoader“.„loadClass“ (paleidimo priemonė.java: 331)
ties java.lang.„ClassLoader“.„loadClass“ („ClassLoader“.java: 357)
... dar 1
„Gradle“ leidžia lengvai supakuoti priklausomybes į savo paketą.
Išvada
Naudodami „Gradle“ saugyklas ir priklausomybių funkcijas galite supaprastinti priklausomybės valdymo procesą. Jums nereikia rankiniu būdu sekti visko.
Tolesnis tyrimas:
„Java“ projektų „Gradle“ priklausomybės valdymas