Java

Gradle Repositories

Gradle Repositories
Gradle ser etter eksterne avhengigheter i repositoriene. Et Gradle-arkiv er organisert ved hjelp av gruppe, navn og versjon. Gradle er kompatibel med forskjellige depotformater som Maven og Ivy.

Forståelse av avhengighetsledelse i Gradle

Repositories brukes i Gradle for avhengighetsstyring. Det er to komponenter til Gradle avhengigheter: avhengigheter og publikasjoner av prosjektet.

Når du bygger et prosjekt på Gradle, trenger du sannsynligvis biblioteker fra andre utviklere. Anta at du trenger Apache Commons Lang-biblioteket for spesielle strengmanipulasjoner. Så du trenger det i klassen din for at koden din skal fungere. Og Apache Commons Lang kan trenge flere biblioteker som du ikke er klar over. Gradle lar deg fortelle den spesielle avhengigheten prosjektet ditt trenger, og det vil gå til det angitte depotet som Maven eller Ivy og finne ut alle relaterte avhengigheter og laste ned filene og sette det opp for deg automatisk.

Gradle har også muligheten til å publisere gjenstandene dine. Du kan bestemme hva publikasjon betyr for din spesielle sak. Du kan publisere den lokalt eller publisere den til et Maven- eller Ivy-arkiv.

Gradle Repository Eksempel

Anta at vi vil bruke StringUtils-klassen fra Apache Commons Lang-biblioteket. La oss sette opp en regissør som denne:

Hei Verden
| - bygge.gradering
'- src
| - hoved
'- java
'-- Hei Verden
'-- Hei Verden.java

I helloworld.java, kan du sette følgende kode:

importere organisasjon.apache.allmenning.lang3.StringUtils;
offentlig klasse helloworld
public static void main (String [] args)
Stringhilsener = "Hello World!";
System.ute.println (hilsener);
System.ute.println (StringUtils.swapCase (hilsener));

Og i bygningen.gradle-fil kan du sette følgende:

bruk plugin: 'java'
versjon = '1.0 '
repositories
mavenCentral ()

avhengigheter
kompilere gruppe: 'org.apache.commons ', navn:' commons-lang3 ', versjon:' 3.7 '

krukke
fra konfigurasjoner.kompilere.samle zipTree it

La oss diskutere hva som skjer i byggeskriptet ovenfor. Det forteller Gradle å se i Maven-arkivet for commons-lang3 versjon 3.7. Det forteller også Gradle å pakke avhengighetene i jar-filen. Hvis du fjerner fra konfigurasjonene.kompilere.samle zipTree it -linjen, så må du inkludere de eksterne avhengighetene i klassestien når du kjører programmet.

Nå fra rotmappen kan du kjøre build med kommandoen

$ gradle jar
Du bør se resultater som dette:
$ gradle jar
Last ned https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Last ned https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-parent-42.pom
Last ned https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.krukke
BYGG SUCCESFULL på 6-tallet
2 handlingsoppgaver: 1 utført, 1 oppdatert

Du kan kjøre bygningen slik:

$ java -cp build / libs / helloworld-1.0.jar helloworld
Hei Verden!
Hei Verden!

Hvis du ikke hadde tatt med avhengighetene i bygningen din, hadde ikke StringUtils-klassene blitt inkludert i helloworld-1.0.jar-fil. Og du ville ha fått en feil som dette:

$ java -cp build / libs / helloworld-1.0.jar helloworld
Hei Verden!
Unntak i tråd "hoved" java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils på helloworld.main (helloworld.Java: 11)
Forårsaket av: java.lang.ClassNotFoundException: org.apache.allmenning.lang3.StringUtils
på java.nett.URLClassLoader.findClass (URLClassLoader.java: 381)
på java.lang.ClassLoader.loadClass (ClassLoader.java: 424)
ved sola.diverse.Launcher $ AppClassLoader.loadClass (Launcher.java: 331)
på java.lang.ClassLoader.loadClass (ClassLoader.java: 357)
… 1 til

Gradle gjør det enkelt for deg å pakke avhengighetene dine i pakken.

Konklusjon

Ved å bruke Gradle-arkiver og avhengighetsfunksjoner kan du forenkle prosessen for avhengighetsadministrasjon. Du trenger ikke å holde orden på alt manuelt.

Videre studier:

Gradle Dependency Management for Java-prosjekter

Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...