Gradle - Çoklu Proje Oluşturma

Gradle, en küçük ve en büyük projeleri kolayca halledebilir. Küçük projelerin tek bir yapı dosyası ve bir kaynak ağacı vardır. Daha küçük, birbirine bağlı modüllere bölünmüş bir projeyi sindirmek ve anlamak çok kolaydır. Gradle, çok projeli derleme olan bu senaryoyu mükemmel şekilde destekler.

Çoklu Proje Oluşturma Yapısı

Bu tür yapılar tüm şekil ve boyutlarda olabilir, ancak bazı ortak özellikleri vardır -

  • Bir settings.gradle dosyayı projenin kök veya ana dizinindeki.

  • Bir build.gradle kök veya ana dizindeki dosya.

  • Kendilerine ait alt dizinleri *.gradle derleme dosyaları (bazı çok projeli derlemeler, alt proje derleme komut dosyalarını atlayabilir).

Derleme dosyasındaki tüm projeleri listelemek için aşağıdaki komutu kullanabilirsiniz.

C:\> gradle -q projects

Çıktı:

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

Rapor, belirtilmişse her projenin açıklamasını gösterir. Açıklamayı belirtmek için aşağıdaki komutu kullanabilirsiniz. Yapıştırınbuild.gradle dosya.

description = 'The shared API for the application'

Genel Yapı Yapılandırması Belirtme

İçinde build.gradle root_project dosyasında, genel konfigürasyonlar tüm projelere veya sadece alt projelere uygulanabilir.

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

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

Bu, ortak bir com.example.gradle grup ve 0.1.0tüm projelere sürüm. subprojects kapatma, tüm alt projeler için ortak yapılandırmaları uygular, ancak kök projeye uygulamaz. allprojects kapanış yapar.

Projeye Özgü Yapılandırmalar ve Bağımlılıklar

Çekirdek ui ve util alt projelerin de kendi build.gradle dosya, kök projenin genel konfigürasyonu tarafından henüz uygulanmamış özel ihtiyaçları varsa.

Örneğin, kullanıcı arabirimi projesi genellikle çekirdek projeye bağımlıdır. Dolayısıyla kullanıcı arabirimi projesinin kendibuild.gradle Bu bağımlılığı belirtmek için dosya.

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

Proje bağımlılıkları proje yöntemi ile belirtilir.