Gradle - kompilacja wielu projektów

Gradle z łatwością radzi sobie z najmniejszymi i największymi projektami. Małe projekty mają jeden plik kompilacji i drzewo źródłowe. Projekt, który został podzielony na mniejsze, współzależne moduły, jest bardzo łatwy do zrozumienia i zrozumienia. Gradle doskonale obsługuje ten scenariusz, jakim jest kompilacja wielu projektów.

Struktura do tworzenia wielu projektów

Takie kompilacje mają różne kształty i rozmiary, ale mają pewne wspólne cechy -

  • ZA settings.gradle plik w katalogu głównym lub głównym projektu.

  • ZA build.gradle plik w katalogu głównym lub głównym.

  • Katalogi podrzędne, które mają własne *.gradle pliki kompilacji (niektóre kompilacje z wieloma projektami mogą pomijać skrypty budowania projektów podrzędnych).

Aby wyświetlić wszystkie projekty w pliku kompilacji, możesz użyć następującego polecenia.

C:\> gradle -q projects

Wynik:

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

Raport zawiera opis każdego projektu, jeśli został określony. Aby określić opis, możesz użyć następującego polecenia. Wklej go wbuild.gradle plik.

description = 'The shared API for the application'

Określanie ogólnej konfiguracji kompilacji

W build.gradle plik w root_project, ogólne konfiguracje można zastosować do wszystkich projektów lub tylko do projektów podrzędnych.

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

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

To określa wspólne com.example.gradle grupa i 0.1.0wersja do wszystkich projektów. Pliksubprojects closure stosuje typowe konfiguracje dla wszystkich projektów podrzędnych, ale nie do projektu głównego, takiego jak allprojects zamknięcie robi.

Konfiguracje i zależności specyficzne dla projektu

Rdzeń ui i util podprojekty mogą mieć również własne build.gradle plik, jeśli mają określone potrzeby, które nie są już uwzględnione w ogólnej konfiguracji projektu głównego.

Na przykład projekt interfejsu użytkownika zwykle ma zależność od projektu podstawowego. Projekt interfejsu użytkownika potrzebuje więc własnegobuild.gradle plik, aby określić tę zależność.

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

Zależności projektu są określane za pomocą metody projektu.