Gradle - Multi-Projekt-Build

Gradle kann problemlos kleinste und größte Projekte bearbeiten. Kleine Projekte haben eine einzelne Build-Datei und einen Quellbaum. Es ist sehr einfach, ein Projekt zu verdauen und zu verstehen, das in kleinere, voneinander abhängige Module aufgeteilt wurde. Gradle unterstützt dieses Szenario, das aus mehreren Projekten besteht, perfekt.

Struktur für die Erstellung mehrerer Projekte

Solche Builds gibt es in allen Formen und Größen, aber sie haben einige gemeinsame Eigenschaften -

  • EIN settings.gradle Datei im Stamm- oder Hauptverzeichnis des Projekts.

  • EIN build.gradle Datei im Stamm- oder Hauptverzeichnis.

  • Untergeordnete Verzeichnisse, die ihre eigenen haben *.gradle Build-Dateien (einige Builds für mehrere Projekte lassen möglicherweise untergeordnete Projekt-Build-Skripte aus).

Mit dem folgenden Befehl können Sie alle Projekte in der Build-Datei auflisten.

C:\> gradle -q projects

Ausgabe:

------------------------------------------------------------
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

Der Bericht enthält die Beschreibung jedes Projekts, falls angegeben. Mit dem folgenden Befehl können Sie die Beschreibung angeben. Fügen Sie es in diebuild.gradle Datei.

description = 'The shared API for the application'

Angeben einer allgemeinen Build-Konfiguration

In einem build.gradle Datei im root_project können allgemeine Konfigurationen auf alle Projekte oder nur auf die Unterprojekte angewendet werden.

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

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

Dies gibt eine gemeinsame an com.example.gradle Gruppe und die 0.1.0Version für alle Projekte. Dassubprojects Beim Schließen werden gemeinsame Konfigurationen für alle Unterprojekte angewendet, jedoch nicht für das Stammprojekt wie das allprojects Schließung tut.

Projektspezifische Konfigurationen und Abhängigkeiten

Der Kern ui und util Teilprojekte können auch eigene haben build.gradle Datei, wenn sie spezielle Anforderungen haben, die von der allgemeinen Konfiguration des Stammprojekts noch nicht angewendet werden.

Beispielsweise ist das UI-Projekt normalerweise vom Kernprojekt abhängig. Das UI-Projekt braucht also ein eigenesbuild.gradle Datei, um diese Abhängigkeit anzugeben.

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

Projektabhängigkeiten werden mit der Projektmethode angegeben.