Java

Gradle Repositories

Gradle Repositories
Gradle ser efter eksterne afhængigheder i arkiverne. Et Gradle-arkiv er organiseret ved hjælp af gruppe, navn og version. Gradle er kompatibel med forskellige arkivformater som Maven og Ivy.

Forståelse af afhængighedsstyring i Gradle

Repositories bruges i Gradle til afhængighedsstyring. Der er to komponenter til Gradle-afhængigheder: afhængigheder og publikationer af projektet.

Når du bygger et projekt på Gradle, har du sandsynligvis brug for biblioteker fra andre udviklere. Antag at du har brug for Apache Commons Lang-biblioteket til specielle strengmanipulationer. Så du har brug for det i din klassesti for at din kode skal fungere. Og Apache Commons Lang har muligvis brug for yderligere biblioteker, som du ikke er opmærksom på. Gradle giver dig mulighed for at fortælle den særlige afhængighed, dit projekt har brug for, og det vil gå til det angivne lager som Maven eller Ivy og finde ud af alle de relaterede afhængigheder og downloade filerne og konfigurere det automatisk til dig.

Gradle har også evnen til at udgive dine artefakter. Du kan beslutte, hvad offentliggørelse betyder for din særlige sag. Du kan udgive det lokalt eller udgive det til et Maven- eller Ivy-arkiv.

Gradle Repository Eksempel

Antag, vi vil bruge StringUtils-klassen fra Apache Commons Lang-biblioteket. Lad os oprette en instruktør som denne:

Hej Verden
| - build.gradle
'- src
| - hoved
'- java
'-- Hej Verden
'-- Hej Verden.java

I helloworld.java, du kan sætte følgende kode:

importorg.apache.fælles.lang3.StringUtils;
offentlig klasse helloworld
offentlig statisk ugyldig hoved (String [] args)
Stringhilsner = "Hello World!";
System.ud.println (hilsner);
System.ud.println (StringUtils.swapCase (hilsner));

Og i bygningen.gradle-fil kan du sætte følgende:

anvend plugin: 'java'
version = '1.0 '
opbevaringssteder
mavenCentral ()

afhængigheder
kompilér gruppe: 'org.apache.commons ', navn:' commons-lang3 ', version:' 3.7 '

krukke
fra konfigurationer.udarbejde.indsamle zipTree it

Lad os diskutere, hvad der sker i ovenstående build-script. Det fortæller Gradle at kigge i Maven-arkivet for commons-lang3 version 3.7. Det fortæller også Gradle at pakke afhængighederne i jar-filen. Hvis du fjerner fra konfigurationer.udarbejde.saml zipTree it -linjen, så bliver du nødt til at medtage de eksterne afhængigheder i klassestien, når du kører programmet.

Nu fra rodmappen kan du køre build med kommandoen

$ gradle krukke
Du skal se resultater som denne:
$ gradle krukke
Download https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Download https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-parent-42.pom
Download https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.krukke
BYGG FRA I 6s
2 handlinger, der kan handles: 1 udført, 1 opdateret

Du kan køre build sådan:

$ java -cp build / libs / helloworld-1.0.krukke helloworld
Hej Verden!
Hej Verden!

Hvis du ikke havde inkluderet afhængighederne i din build, ville StringUtils-klasserne ikke være inkluderet i din helloworld-1.0.jar-fil. Og du ville have fået en fejl som denne:

$ java -cp build / libs / helloworld-1.0.krukke helloworld
Hej Verden!
Undtagelse i tråd "main" java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils i helloworld.main (helloworld.Java: 11)
Forårsaget af: java.lang.ClassNotFoundException: org.apache.fælles.lang3.StringUtils
i java.net.URLClassLoader.findClass (URLClassLoader.java: 381)
i java.lang.ClassLoader.loadClass (ClassLoader.Java: 424)
ved sol.misc.Launcher $ AppClassLoader.loadClass (Launcher.java: 331)
i java.lang.ClassLoader.loadClass (ClassLoader.java: 357)
… 1 mere

Gradle gør det nemt for dig at pakke dine afhængigheder i din pakke.

Konklusion

Brug af Gradle-arkiver og afhængighedsfunktioner kan forenkle din afhængighedsstyringsproces. Du behøver ikke manuelt holde styr på alt.

Yderligere studier:

Gradle Dependency Management til Java-projekter

Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...