Java

Skladišča Gradle

Skladišča Gradle
Gradle išče zunanje odvisnosti v skladiščih. Skladišče Gradle je organizirano z uporabo skupine, imena in različice. Gradle je združljiv z različnimi formati repozitorijev, kot sta Maven in Ivy.

Razumevanje upravljanja odvisnosti v Gradleju

Repozitoriji se v Gradleju uporabljajo za upravljanje odvisnosti. Odvisnosti Gradleja so dve komponenti: odvisnosti in objave projekta.

Ko gradite projekt na Gradleju, boste verjetno potrebovali knjižnice drugih razvijalcev. Recimo, da za posebne manipulacije z nizi potrebujete knjižnico Apache Commons Lang. Torej jo potrebujete v svoji učilni poti, da bo koda delovala. In Apache Commons Lang bo morda potreboval dodatne knjižnice, ki jih ne poznate. Gradle vam omogoča, da določite določeno odvisnost, ki jo potrebuje vaš projekt, in se bo odpravil na določeno odlagališče, kot je Maven ali Ivy, in ugotovil vse povezane odvisnosti ter prenesel datoteke in ga samodejno nastavil za vas.

Gradle ima tudi možnost, da objavi vaše artefakte. Odločite se lahko, kaj objava pomeni za vaš primer. Lahko ga objavite lokalno ali objavite v odlagališču Maven ali Ivy.

Primer skladišča Gradle

Recimo, da želimo uporabiti razred StringUtils iz knjižnice Apache Commons Lang. Postavimo režiserja, kot je ta:

Pozdravljen, svet
| - graditi.gradle
'- src
| - glavni
'- java
'-- Pozdravljen, svet
'-- Pozdravljen, svet.java

V helloworld svetu.java, lahko vstavite naslednjo kodo:

uvozna org.apache.skupnega.lang3.StringUtils;
javni razred helloworld
public static void main (String [] args)
String pozdravi = "Hello World!";
Sistem.ven.println (pozdrav);
Sistem.ven.println (StringUtils.swapCase (pozdrav));

In v gradnji.datoteko gradle lahko dodate naslednje:

uporabi vtičnik: 'java'
version = '1.0 '
repozitoriji
mavenCentral ()

odvisnosti
sestavi skupino: 'org.apache.commons ', ime:' commons-lang3 ', različica:' 3.7 '

kozarec
iz konfiguracij.sestavi.zberi zipTree it

Pogovorimo se o dogajanju v zgornjem skriptu za gradnjo. Gradleu sporoča, naj v repozitoriju Maven poišče različico 3 commons-lang3.7. Prav tako Gradleu sporoča, naj odvisnosti zapakira v datoteko jar. Če odstranite iz konfiguracij.sestavi.zberite vrstico zipTree it, potem boste morali med zagonom programa vključiti zunanje odvisnosti v pot do razreda.

Zdaj v korenski mapi lahko z ukazom zaženete gradnjo

$ gradle kozarec
Morali bi videti takšne rezultate:
$ gradle kozarec
Prenesite https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Prenesite https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-parent-42.pom
Prenesite https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.kozarec
ZGRADI USPEŠNO v 6s
2 izvedljivi nalogi: 1 izvedena, 1 posodobljena

Gradnjo lahko zaženete tako:

$ java -cp build / libs / helloworld-1.0.kozarec helloworld
Pozdravljen, svet!
Pozdravljen, svet!

Če v svojo gradnjo ne bi vključili odvisnosti, potem razredi StringUtils ne bi bili vključeni v vaš helloworld-1.0.datoteka jar. In dobili bi takšno napako:

$ java -cp build / libs / helloworld-1.0.kozarec helloworld
Pozdravljen, svet!
Izjema v niti "main" java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils na helloworld.glavni (helloworld.java: 11)
Vzrok: java.lang.ClassNotFoundException: org.apache.skupnega.lang3.StringUtils
na javi.mreža.URLClassLoader.findClass (URLClassLoader.java: 381)
na javi.lang.ClassLoader.loadClass (ClassLoader.java: 424)
ob soncu.razno.Zaganjalnik $ AppClassLoader.loadClass (Launcher.java: 331)
na javi.lang.ClassLoader.loadClass (ClassLoader.java: 357)
… Še 1

Gradle vam olajša pakiranje odvisnosti v paket.

Zaključek

Uporaba Gradlejevih skladišč in funkcionalnosti odvisnosti vam lahko poenostavi postopek upravljanja odvisnosti. Ni vam treba ročno spremljati vsega.

Nadaljni študij:

Gradle Upravljanje odvisnosti za projekte Java

Namestite najnovejšo strategijo igre OpenRA v Ubuntu Linux
OpenRA je Libre / Free Real Time strateški stroj, ki poustvarja zgodnje igre Westwood, kot je klasična Command & Conquer: Red Alert. Porazdeljeni modi...
Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...