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 purkPeaksite 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.purgikaaslaneTere, 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.purgikaaslaneTere, 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