Gradle - Build multi-progetto

Gradle può gestire facilmente progetti più piccoli e più grandi. I piccoli progetti hanno un singolo file di build e un albero dei sorgenti. È molto facile assimilare e comprendere un progetto che è stato suddiviso in moduli più piccoli e interdipendenti. Gradle supporta perfettamente questo scenario che è build multi-progetto.

Struttura per build multiprogetto

Tali build sono disponibili in tutte le forme e dimensioni, ma hanno alcune caratteristiche comuni:

  • UN settings.gradle file nella directory principale o principale del progetto.

  • UN build.gradle file nella directory principale o principale.

  • Directory figlie che hanno le proprie *.gradle build file (alcune build multi-progetto possono omettere gli script di build del progetto figlio).

Per elencare tutti i progetti nel file build, puoi usare il seguente comando.

C:\> gradle -q projects

Produzione:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks

Il report mostra la descrizione di ogni progetto, se specificato. È possibile utilizzare il seguente comando per specificare la descrizione. Incollalo nel filebuild.gradle file.

description = 'The shared API for the application'

Specificare una configurazione generale della build

In un build.gradle file in root_project, le configurazioni generali possono essere applicate a tutti i progetti o solo ai sottoprogetti.

allprojects {
   group = 'com.example.gradle'
   version = '0.1.0'
}

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'
}

Questo specifica un common com.example.gradle gruppo e il 0.1.0versione a tutti i progetti. Ilsubprojects chiusura applica configurazioni comuni a tutti i sottoprogetti, ma non al progetto radice, come il allprojects la chiusura fa.

Configurazioni e dipendenze specifiche del progetto

Il centro ui e util i sottoprogetti possono anche avere i propri build.gradle file, se hanno esigenze specifiche, che non sono già applicate dalla configurazione generale del progetto root.

Ad esempio, il progetto ui di solito ha una dipendenza dal progetto principale. Quindi il progetto dell'interfaccia utente ha bisogno del suobuild.gradle file per specificare questa dipendenza.

dependencies {
   compile project(':core')
   compile 'log4j:log4j:1.2.17'
}

Le dipendenze del progetto vengono specificate con il metodo del progetto.