Gradle - Bangun Multi-Proyek

Gradle dapat menangani proyek terkecil dan terbesar dengan mudah. Proyek kecil memiliki satu file build dan pohon sumber. Sangat mudah untuk mencerna dan memahami proyek yang telah dipecah menjadi modul yang lebih kecil dan saling bergantung. Gradle sangat mendukung skenario ini yaitu multi-project build.

Struktur untuk Multi-project Build

Bangunan seperti itu datang dalam berbagai bentuk dan ukuran, tetapi mereka memiliki beberapa karakteristik yang sama -

  • SEBUAH settings.gradle file di root atau direktori master proyek.

  • SEBUAH build.gradle file di root atau direktori master.

  • Direktori anak yang memiliki miliknya sendiri *.gradle file build (beberapa build multi-project mungkin mengabaikan skrip build project anak).

Untuk mencantumkan semua proyek dalam file build, Anda dapat menggunakan perintah berikut.

C:\> gradle -q projects

Keluaran:

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

Laporan tersebut menunjukkan deskripsi setiap proyek, jika ditentukan. Anda dapat menggunakan perintah berikut untuk menentukan deskripsi. Tempel dibuild.gradle mengajukan.

description = 'The shared API for the application'

Menentukan Konfigurasi Build Umum

Di sebuah build.gradle file di root_project, konfigurasi umum dapat diterapkan ke semua proyek atau hanya ke sub proyek.

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

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

Ini menentukan yang umum com.example.gradle grup dan 0.1.0versi untuk semua proyek. Itusubprojects closure menerapkan konfigurasi umum untuk semua sub proyek, tetapi tidak untuk proyek akar, seperti allprojects penutupan tidak.

Konfigurasi dan Ketergantungan Khusus Proyek

Inti ui dan util subproyek juga bisa memiliki sendiri build.gradle file, jika mereka memiliki kebutuhan khusus, yang belum diterapkan oleh konfigurasi umum proyek root.

Misalnya, proyek ui biasanya memiliki ketergantungan pada proyek inti. Jadi proyek ui membutuhkannya sendiribuild.gradle file untuk menentukan ketergantungan ini.

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

Dependensi proyek ditentukan dengan metode proyek.