Comprensione della gestione delle dipendenze in gradle
I repository sono utilizzati in gradle per la gestione delle dipendenze. Esistono due componenti per gradcare le dipendenze: dipendenze e pubblicazioni del progetto.
Quando costruisci un progetto su Gradle, probabilmente avrai bisogno di biblioteche di altri sviluppatori. Supponiamo di aver bisogno della biblioteca di Apache Commons Lang per manipolazioni di stringhe speciali. Quindi ne hai bisogno nella tua classe per far funzionare il tuo codice. E l'Apache Commons Lang potrebbe aver bisogno di librerie aggiuntive di cui non sei a conoscenza. Gradle ti consente di raccontare la particolare dipendenza di cui il tuo progetto ha bisogno e andrà al repository specificato come Maven o Ivy e capire tutte le dipendenze correlate e scaricare i file e impostarlo automaticamente.
Gradle ha anche la possibilità di pubblicare i tuoi artefatti. Puoi decidere cosa significa la pubblicazione per il tuo caso particolare. Puoi pubblicarlo a livello locale o pubblicarlo su un repository Maven o Ivy.
Esempio di repository gradle
Supponiamo, vogliamo usare la classe StringUtils da Apache Commons Lang Library. Impostiamo un regista come questo:
Ciao mondoNell'inoworld.Java, puoi mettere il seguente codice:
Org di importazione.Apache.Comuni.Lang3.Stringutils;E nella build.file gradle puoi mettere quanto segue:
Applica Plugin: "Java"Discutiamo di ciò che sta accadendo nella sceneggiatura di build sopra. Sta dicendo a Gradle di cercare nel repository Maven per la versione 3 Commons-Lang3.7. Sta anche dicendo a Gradle di impacchettare le dipendenze nel file jar. Se si rimuove le configurazioni da.compilare.Raccogli la riga .
Ora dalla cartella principale, puoi eseguire la build con il comando
$ gradle jar
Dovresti vedere risultati come questo:
$ gradle jar
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/
Commons-Parent-42.pom
Scarica https: // Repo.Esperto di.Apache.Org/Maven2/Org/Apache/Commons/Commons-Lang3/3.7/
Commons-Lang3-3.7.vaso
Costruisci successo in 6s
2 Attività attuabili: 1 eseguito, 1 aggiornato
Puoi eseguire la build in questo modo:
$ java -cp build/libs/helloworld -1.0.Jar Helloworld
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.Jar Helloworld
Ciao mondo!
Eccezione nel thread "Main" Java.Lang.NOCLASSDEFFOUNDERROR: Org/Apache/Commons/Lang3/
Stringutils a Helloworld.Main (Helloworld.Java: 11)
Causato da: Java.Lang.ClassNotFoundException: org.Apache.Comuni.Lang3.Stringutils
a Java.netto.UrlClassloader.FindClass (UrlClassLoader.Java: 381)
a Java.Lang.Classloader.LoadClass (ClassLoader.Java: 424)
al sole.misc.Launcher $ AppClassloader.LoadClass (lanciatore.Java: 331)
a Java.Lang.Classloader.LoadClass (ClassLoader.Java: 357)
... 1 altro
Gradle ti rende facile impacchettare le tue dipendenze nel pacchetto.
L'uso dei repository di gradle e le funzionalità delle dipendenze possono semplificare il processo di gestione delle dipendenze. Non devi tenere manualmente traccia di tutto.
Gradle Dipendency Management per i progetti Java