Giava

Repository Gradle

Repository Gradle
Gradle cerca dipendenze esterne nei repository. Un repository Gradle è organizzato usando gruppo, nome e versione. Gradle è compatibile con diversi formati di repository come Maven e Ivy.

Comprensione della gestione delle dipendenze in Gradle

I repository sono utilizzati in Gradle per la gestione delle dipendenze. Ci sono due componenti per le dipendenze Gradle: dipendenze e pubblicazioni del progetto.

Quando crei un progetto su Gradle, probabilmente avrai bisogno di librerie di altri sviluppatori. Supponiamo di aver bisogno della libreria Apache Commons Lang per speciali manipolazioni di stringhe. Quindi ne hai bisogno nel tuo percorso di classe affinché il tuo codice funzioni. E Apache Commons Lang potrebbe aver bisogno di librerie aggiuntive di cui non sei a conoscenza. Gradle ti consente di dire la particolare dipendenza di cui il tuo progetto ha bisogno e andrà al repository specificato come Maven o Ivy e scoprirà tutte le dipendenze correlate e scaricherà i file e lo configurerà automaticamente per te.

Gradle ha anche la possibilità di pubblicare i tuoi artefatti. Puoi decidere cosa significa pubblicazione per il tuo caso particolare. Puoi pubblicarlo localmente o pubblicarlo su un repository Maven o Ivy.

Esempio di repository Gradle

Supponiamo di voler utilizzare la classe StringUtils dalla libreria Apache Commons Lang. Impostiamo un regista in questo modo:

Ciao mondo
|-- build.grado
'-- src
|-- principale
'-- java
'-- Ciao mondo
'-- Ciao mondo.Giava

Nell'aldilà.java, puoi inserire il seguente codice:

importare organizzazione.apache.beni comuni.lang3.StringUtils;
classe pubblica ciaomondo
public static void main(String[] args)
Saluti stringa = "Hello World!";
Sistema.su.println(saluti);
Sistema.su.println(StringUtils.swapCase(saluti));

E nella costruzione.gradle file puoi inserire quanto segue:

applica il plugin: 'java'
versione = '1.0'
repository
mavenCentral()

dipendenze
compila il gruppo: 'org.apache.commons', nome: 'commons-lang3', versione: '3.7'

vaso
dalle configurazioni.compilare.raccogli zipTree it

Discutiamo cosa sta succedendo nello script di build sopra. Sta dicendo a Gradle di cercare nel repository Maven la versione 3 di commons-lang3.7. Sta anche dicendo a Gradle di impacchettare le dipendenze nel file jar. Se rimuovi dalle configurazioni.compilare.collect zipTree it, quindi dovrai includere le dipendenze esterne nel classpath quando esegui il programma.

Ora dalla cartella principale, puoi eseguire la build con il comando

barattolo $gradle
Dovresti vedere risultati come questo:
barattolo $gradle
Scarica https://repo.Esperto di.apache.org/maven2/org/apache/commons/commons-lang3/3.7/
commons-lang3-3.7.pom
Scarica https://repo.Esperto di.apache.org/maven2/org/apache/commons/commons-parent/42/
beni comuni-genitore-42.pom
Scarica https://repo.Esperto di.apache.org/maven2/org/apache/commons/commons-lang3/3.7/
commons-lang3-3.7.vaso
COSTRUISCI CON SUCCESSO in 6 secondi
2 attività eseguibili: 1 eseguita, 1 aggiornata

Puoi eseguire la build in questo modo:

$ java -cp build/libs/helloworld-1.0.vaso  ciaomondo
Ciao mondo!
Ciao mondo!

Se non avessi incluso le dipendenze nella tua build, le classi StringUtils non sarebbero state incluse nel tuo helloworld-1.0.file jar. E avresti ricevuto un errore come questo:

$ java -cp build/libs/helloworld-1.0.vaso ciaomondo
Ciao mondo!
Eccezione nel thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/
StringUtils su helloworld.principale(ciaomondo.Giava:11)
Causato da: java.lang.ClassNotFoundException: org.apache.beni comuni.lang3.StringUtils
in java.netto.URLClassLoader.findClass(URLClassLoader.Giava:381)
in java.lang.ClassLoader.loadClass(ClassLoader.Giava:424)
al sole.varie.Launcher$AppClassLoader.loadClass(Launcher.Giava:331)
in java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 1 altro

Gradle ti rende facile impacchettare le tue dipendenze nel tuo pacchetto.

Conclusione

L'utilizzo dei repository Gradle e delle funzionalità delle dipendenze può semplificare il processo di gestione delle dipendenze. Non devi tenere traccia di tutto manualmente.

Ulteriori studi:

Gestione delle dipendenze Gradle per progetti Java

Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...
I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...