Java

Gradle'i hoidlad

Gradle'i hoidlad
Gradle otsib hoidlatest väliseid sõltuvusi. Gradle'i hoidla on korraldatud grupi, nime ja versiooni abil. Gradle ühildub erinevate hoidlavormingutega, nagu Maven ja Ivy.

Sõltuvushalduse mõistmine Gradles

Hoidlaid kasutatakse Gradles sõltuvuse haldamiseks. Gradle'i sõltuvustel on kaks komponenti: sõltuvused ja projekti väljaanded.

Kui koostate projekti Gradle'ile, vajate tõenäoliselt teiste arendajate raamatukogusid. Oletame, et stringi spetsiaalsete manipulatsioonide jaoks vajate Apache Commons Langi teeki. Seega vajate seda oma koodi töötamiseks oma klassirajal. Ja Apache Commons Lang võib vajada täiendavaid teeke, millest te pole teadlik. Gradle võimaldab teil öelda konkreetse sõltuvuse, mida teie projekt vajab, ja see läheb määratud hoidlasse nagu Maven või Ivy ning selgitab välja kõik seotud sõltuvused ja laadib failid alla ning seadistab selle teile automaatselt.

Gradle'il on ka võimalus oma esemeid avaldada. Saate otsustada, mida avaldamine teie konkreetsel juhul tähendab. Võite selle avaldada kohapeal või avaldada Maveni või Ivy hoidlas.

Gradle'i hoidla näide

Oletame, et me tahame kasutada Apache Commons Langi teegi klassi StringUtils. Paneme paika sellise režissööri:

Tere, Maailm
| - ehitada.gradle
'- src
| - peamine
'- java
'-- Tere, Maailm
'-- Tere, Maailm.java

Kogumaailmas.java, saate sisestada järgmise koodi:

impordi org.apache.ühised.lang3.StringUtils;
rahvaklassi kaasmaalane
public staatiline void main (String [] args)
String-tervitused = "Tere maailm!";
Süsteem.välja.println (tervitused);
Süsteem.välja.println (StringUtils.swapCase (tervitused));

Ja ehitamisel.gradle faili saate panna järgmise:

rakendage pistikprogrammi: 'java'
versioon = '1.0 '
hoidlad
mavenCentral ()

sõltuvused
kompileeri rühm: 'org.apache.commons ", nimi:" commons-lang3 ", versioon:" 3.7 '

purk
konfiguratsioonidest.koostama.koguge zipTree it

Arutleme, mis toimub ülaltoodud ehituskriptis. Gradle'il on käsk otsida Maveni hoidlast commons-lang3 3. versiooni.7. Samuti käsib Gradle pakendada sõltuvused purkfaili. Kui eemaldate konfiguratsioonidest.koostama.koguge rida zipTree it, siis peate programmi käivitamisel lisama välised sõltuvused klassirajale.

Nüüd juurkaustast saate ehitada käsu abil

$ gradle purk
Peaksite nägema selliseid tulemusi:
$ gradle purk
Laadige alla https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Laadige alla https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
ühine-vanem-42.pom
Laadige alla https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.purk
EHITA 6S-s edukalt
2 teostatavat ülesannet: 1 täidetud, 1 ajakohane

Ehitust saab käivitada järgmiselt:

$ java -cp build / libs / helloworld-1.0.purgikaaslane
Tere, Maailm!
Tere, Maailm!

Kui te poleks sõltuvusi oma koosseisu lisanud, siis ei oleks StringUtilsi klassid kaasatud teie helloworld-1 hulka.0.purgifail. Ja te oleksite saanud sellise vea:

$ java -cp build / libs / helloworld-1.0.purgikaaslane
Tere, Maailm!
Erand lõimes "peamine" java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils muinasmaailmas.peamine (kaasmaailm.java: 11)
Põhjus: java.lang.ClassNotFoundException: org.apache.ühised.lang3.StringUtils
java juures.võrk.URLClassLoader.findClass (URLClassLoader.java: 381)
java juures.lang.ClassLoader.loadClass (ClassLoader.java: 424)
päikese käes.muu.Käivitaja $ AppClassLoader.loadClass (käivitaja.java: 331)
java juures.lang.ClassLoader.loadClass (ClassLoader.java: 357)
… 1 veel

Gradle muudab teie sõltuvuste pakkimise hõlpsaks.

Järeldus

Gradle'i hoidlate ja sõltuvuste funktsioonide kasutamine võib teie sõltuvushalduse protsessi lihtsustada. Te ei pea kõike käsitsi jälgima.

Edasine uuring:

Java-projektide sõltuvushaldus

OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...
OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...