Gradle - Gestione delle dipendenze

Lo script di build Gradle definisce un processo per costruire i progetti; ogni progetto contiene alcune dipendenze e alcune pubblicazioni. Per dipendenze si intendono le cose che supportano la creazione del progetto come il file JAR richiesto da altri progetti e JAR esterni come JDBC JAR o Eh-cache JAR nel percorso classi. Pubblicazioni indica i risultati del progetto, come file di classe di test e file di build, come file war.

Quasi tutti i progetti non sono autonomi. Hanno bisogno di file compilati da altri progetti per compilare e testare i file sorgente. Ad esempio, per utilizzare Hibernate nel progetto, è necessario includere alcuni JAR Hibernate nel classpath. Gradle utilizza alcuni script speciali per definire le dipendenze, che devono essere scaricati.

Gradle si occupa di costruire e pubblicare i risultati da qualche parte. La pubblicazione si basa sull'attività definita dall'utente. Potrebbe voler copiare i file nella directory locale o caricarli in un repository remoto Maven o lvy oppure potresti utilizzare i file da un altro progetto nella stessa build multi-progetto. Possiamo chiamare il processo di pubblicazione di un'attività pubblicazione.

Dichiarare le proprie dipendenze

La configurazione delle dipendenze non è altro che definisce un insieme di dipendenze. È possibile utilizzare questa funzionalità per dichiarare i mezzi di dipendenze esterne che si desidera scaricare dal web. Questo definisce diversi standers come segue.

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

Configurazioni delle dipendenze

La configurazione delle dipendenze non è altro che definisce un insieme di dipendenze. È possibile utilizzare questa funzionalità per dichiarare le dipendenze esterne che si desidera scaricare dal Web. Questo definisce le seguenti diverse configurazioni standard.

  • Compile - Le dipendenze richieste per compilare l'origine di produzione del progetto.

  • Runtime- Le dipendenze richieste dalle classi di produzione in fase di esecuzione. Per impostazione predefinita, include anche le dipendenze del tempo di compilazione.

  • Test Compile- Le dipendenze richieste per compilare l'origine di test del progetto. Per impostazione predefinita, include le classi di produzione compilate e le dipendenze del tempo di compilazione.

  • Test Runtime- Le dipendenze richieste per eseguire i test. Per impostazione predefinita, include le dipendenze di runtime e compilazione di test.

Dipendenze esterne

Le dipendenze esterne sono quelle del tipo di dipendenze. Questa è una dipendenza da alcuni file creati al di fuori della build corrente e archiviati in un repository di qualche tipo, come Maven central, o un repository aziendale Maven o lvy, o una directory nel file system locale.

Il frammento di codice seguente serve a definire la dipendenza esterna. Usa questo codice inbuild.gradle file.

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

Una dipendenza esterna dichiara le dipendenze esterne e il modulo di scelta rapida appare come "gruppo: nome: versione".

Repository

Durante l'aggiunta di dipendenze esterne. Gradle li cerca in un repository. Un repository è solo una raccolta di file, organizzata per gruppo, nome e versione. Per impostazione predefinita, Gradle non definisce alcun repository. Dobbiamo definire esplicitamente almeno un repository. Il seguente frammento di codice definisce come definire il repository Maven. Usa questo codice inbuild.gradle file.

repositories {
   mavenCentral()
}

Il codice seguente serve a definire il telecomando Maven. Usa questo codice inbuild.gradle file.

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

Pubblicazione di artefatti

Le configurazioni delle dipendenze vengono utilizzate anche per pubblicare i file. Questi file pubblicati sono chiamati artefatti. Di solito, utilizziamo plug-in per definire gli artefatti. Tuttavia, devi dire a Gradle dove pubblicare gli artefatti. È possibile ottenere ciò allegando repository all'attività di caricamento degli archivi. Dai un'occhiata alla seguente sintassi per la pubblicazione del repository Maven. Durante l'esecuzione, Gradle genererà e caricherà un Pom.xml secondo i requisiti del progetto. Usa questo codice inbuild.gradle file.

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}