Java

Gradle Repositories

Gradle Repositories
Gradle letar efter externa beroenden i förvaren. Ett Gradle-arkiv är organiserat med grupp, namn och version. Gradle är kompatibel med olika arkivformat som Maven och Ivy.

Förstå beroendeberoende i Gradle

Förvar används i Gradle för beroendeshantering. Det finns två komponenter i Gradle-beroenden: beroenden och publikationer av projektet.

När du bygger ett projekt på Gradle behöver du antagligen bibliotek från andra utvecklare. Antag att du behöver Apache Commons Lang-biblioteket för speciella strängmanipulationer. Så du behöver det i din klassväg för att din kod ska fungera. Och Apache Commons Lang kan behöva ytterligare bibliotek som du inte känner till. Gradle låter dig berätta det specifika beroendet ditt projekt behöver och det kommer att gå till det angivna arkivet som Maven eller Ivy och räkna ut alla relaterade beroenden och ladda ner filerna och ställa in det automatiskt för dig.

Gradle har också förmågan att publicera dina artefakter. Du kan bestämma vad publikation betyder för just ditt fall. Du kan publicera den lokalt eller publicera den i ett Maven- eller Ivy-arkiv.

Gradle Repository Exempel

Antag att vi vill använda klassen StringUtils från Apache Commons Lang-biblioteket. Låt oss ställa in en regissör så här:

Hej världen
| - bygga.gradle
'- src
| - huvud
'- java
'-- Hej världen
'-- Hej världen.java

I helgenvärlden.java, du kan ange följande kod:

importorg.apache.allmänt.lang3.StringUtils;
public class helloworld
public static void main (String [] args)
Stränghälsningar = "Hello World!";
Systemet.ut.println (hälsningar);
Systemet.ut.println (StringUtils.swapCase (hälsningar));

Och i byggnaden.gradle-fil kan du lägga till följande:

tillämpa plugin: 'java'
version = '1.0 '
arkiv
mavenCentral ()

beroenden
kompilera grupp: 'org.apache.commons ', namn:' commons-lang3 ', version:' 3.7 '

burk
från konfigurationer.sammanställa.samla zipTree it

Låt oss diskutera vad som händer i ovanstående byggskript. Det berättar för Gradle att leta efter commons-lang3 version 3 i Maven-arkivet.7. Det berättar också för Gradle att paketera beroenden i jar-filen. Om du tar bort från konfigurationer.sammanställa.samla zipTree it -raden, då måste du inkludera de externa beroenden i klassvägen när du kör programmet.

Nu från rotmappen kan du köra build med kommandot

$ gradle burk
Du borde se resultat så här:
$ gradle burk
Ladda ner https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Ladda ner https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-parent-42.pom
Ladda ner https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.burk
BYGG FRAMGÅNG på 6-talet
2 handlingar som kan åtgärdas: 1 utförd, 1 uppdaterad

Du kan köra byggnaden så här:

$ java -cp build / libs / helloworld-1.0.burk helloworld
Hej världen!
Hej världen!

Om du inte hade inkluderat beroendeförhållandena i din version, så hade inte StringUtils-klasserna inkluderats i din helloworld-1.0.jar-fil. Och du skulle ha fått ett fel så här:

$ java -cp build / libs / helloworld-1.0.burk helloworld
Hej världen!
Undantag i tråden "main" java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils på helloworld.main (helloworld.Java: 11)
Orsakad av: java.lang.ClassNotFoundException: org.apache.allmänt.lang3.StringUtils
på java.netto.URLClassLoader.findClass (URLClassLoader.java: 381)
på java.lang.ClassLoader.loadClass (ClassLoader.java: 424)
vid solen.diverse.Launcher $ AppClassLoader.loadClass (Launcher.java: 331)
på java.lang.ClassLoader.loadClass (ClassLoader.java: 357)
… 1 till

Gradle gör det enkelt för dig att paketera dina beroenden i ditt paket.

Slutsats

Användning av Gradle-arkiv och beroendefunktioner kan förenkla din beroendeshanteringsprocess. Du behöver inte hålla koll på allt manuellt.

Ytterligare studier:

Gradle Dependency Management för Java-projekt

Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...