Gradle - Bir Derlemeyi Çalıştırma

Gradle, derleme betiğini yürütmek için bir komut satırı sağlar. Aynı anda birden fazla görevi yürütebilir. Bu bölüm, farklı seçenekler kullanılarak birden çok görevin nasıl yürütüleceğini açıklar.

Birden Fazla Görevi Yürütme

Tek bir yapı dosyasından birden çok görevi yürütebilirsiniz. Gradle bu derleme dosyasını kullanarak işleyebilirgradle command. Bu komut, her bir görevi listelendikleri sıraya göre derler ve her görevi, farklı seçenekler kullanarak bağımlılıklarla birlikte yürütür.

Example- Dört görev vardır - görev1, görev2, görev3 ve görev4. Görev3 ve görev4, görev 1 ve görev2'ye bağlıdır. Aşağıdaki şemaya bir göz atın.

Yukarıdaki 4 görev, bir ok sembolü ile temsil edilen birbirine bağlıdır. Aşağıdaki koda bir göz atın. Kopyala yapıştırabilirbuild.gradle dosya.

task task1 << {
   println 'compiling source'
}

task task2(dependsOn: task1) << {
   println 'compiling unit tests'
}

task task3(dependsOn: [task1, task2]) << {
   println 'running unit tests'
}

task task4(dependsOn: [task1, task3]) << {
   println 'building the distribution'
}

Yukarıdaki görevi derlemek ve yürütmek için aşağıdaki kodu kullanabilirsiniz.

C:\> gradle task4 test

Çıktı:

:task1
compiling source
:task2
compiling unit tests
:task3
running unit tests
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Görevleri Dışlama

Bir görevi yürütmeden hariç tutarken, gradle komutuyla birlikte –x seçeneğini kullanabilir ve hariç tutmak istediğiniz görevin adını belirtebilirsiniz.

Task4'ü yukarıdaki komut dosyasından çıkarmak için aşağıdaki komutu kullanın.

C:\> gradle task4 -x test

Çıktı:

:task1
compiling source
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Bir Hata Oluştuğunda Oluşturmaya Devam Etme

Gradle, herhangi bir görev başarısız olur olmaz, yürütmeyi durdurur ve derleme başarısız olur. Bir hata oluştuğunda bile yürütmeye devam edebilirsiniz. Bunun için gradle komutuyla birlikte –continue seçeneğini kullanmalısınız. Her görevi bağımlılıkları ile birlikte ayrı ayrı ele alır. Ve asıl önemli nokta, karşılaşılan her arızayı yakalayacak ve yapının yürütülmesinin sonunda rapor edecek olmasıdır. Bir görev başarısız olursa, sonraki bağımlı görevlerin de yürütülmeyeceğini varsayalım.

Hangi Yapının Çalıştırılacağını Seçme

Gradle komutunu çalıştırdığınızda, mevcut dizinde bir yapı dosyası arar. Mutlak yolla birlikte belirli bir yapı dosyasını seçmek için –b seçeneğini kullanabilirsiniz. Aşağıdaki örnek bir proje merhaba seçerkenmyproject.gradle bulunan dosya subdir/ içine bir göz atın.

task hello << {
   println "using build file '$buildFile.name' in '$buildFile.parentFile.name'."
}

Yukarıdaki komut dosyasını çalıştırmak için aşağıdaki komutu kullanabilirsiniz.

C:\> gradle -q -b subdir/myproject.gradle hello

Çıktı:

using build file 'myproject.gradle' in 'subdir'.

Yapı Bilgilerinin Elde Edilmesi

Gradle, görev ve proje ile ilgili bilgi ayrıntılarını almak için çeşitli yerleşik görevler sağlar. Bu, yapınızın yapısını ve bağımlılıklarını anlamak ve sorunları gidermek için yararlı olabilir. Projenize bu raporları oluşturacak görevleri eklemek için proje raporu eklentisini kullanabilirsiniz.

Projeleri Listeleme

Seçili projenin ve alt projelerinin proje hiyerarşisini kullanarak listeleyebilirsiniz. gradle –q projectskomut. İşte örnek, yapı dosyasındaki tüm projeyi listelemek için aşağıdaki komutu kullanın.

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'

Listeleme Görevleri

Aşağıdaki komutu kullanarak birden çok projeye ait tüm görevleri listeleyebilirsiniz.

C:\> gradle -q tasks

Çıktı:

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Default tasks: dists

Build tasks
-----------
clean - Deletes the build directory (build)
dists - Builds the distribution
libs - Builds the JAR

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'.
components - Displays the components produced by root project 'projectReports'. [incubating]
dependencies - Displays all dependencies declared in root project 'projectReports'.
dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'.
help - Displays a help message.
model - Displays the configuration model of root project 'projectReports'. [incubating]
projects - Displays the sub-projects of root project 'projectReports'.
properties - Displays the properties of root project 'projectReports'.
tasks - Displays the tasks runnable from root project 'projectReports' 
   (some of the displayed tasks may belong to subprojects).

To see all tasks and more detail, run gradle tasks --all

To see more detail about a task, run gradle help --task <task>

Tüm görevlerin bilgilerini görüntülemek için aşağıdaki komutu kullanabilirsiniz.

C:\> gradle -q tasks --all

Çıktı:

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Default tasks: dists

Build tasks
-----------
clean - Deletes the build directory (build)
api:clean - Deletes the build directory (build)
webapp:clean - Deletes the build directory (build)
dists - Builds the distribution [api:libs, webapp:libs]
   docs - Builds the documentation
api:libs - Builds the JAR
   api:compile - Compiles the source files
webapp:libs - Builds the JAR [api:libs]
   webapp:compile - Compiles the source files

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'.
api:buildEnvironment - Displays all buildscript dependencies declared in project ':api'.
webapp:buildEnvironment - Displays all buildscript dependencies declared in project ':webapp'.
components - Displays the components produced by root project 'projectReports'. [incubating]
api:components - Displays the components produced by project ':api'. [incubating]
webapp:components - Displays the components produced by project ':webapp'. [incubating]
dependencies - Displays all dependencies declared in root project 'projectReports'.
api:dependencies - Displays all dependencies declared in project ':api'.
webapp:dependencies - Displays all dependencies declared in project ':webapp'.
dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'.
api:dependencyInsight - Displays the insight into a specific dependency in project ':api'.
webapp:dependencyInsight - Displays the insight into a specific dependency in project ':webapp'.
help - Displays a help message.
api:help - Displays a help message.
webapp:help - Displays a help message.
model - Displays the configuration model of root project 'projectReports'. [incubating]
api:model - Displays the configuration model of project ':api'. [incubating]
webapp:model - Displays the configuration model of project ':webapp'. [incubating]
projects - Displays the sub-projects of root project 'projectReports'.
api:projects - Displays the sub-projects of project ':api'.
webapp:projects - Displays the sub-projects of project ':webapp'.
properties - Displays the properties of root project 'projectReports'.
api:properties - Displays the properties of project ':api'.
webapp:properties - Displays the properties of project ':webapp'.
tasks - Displays the tasks runnable from root project 'projectReports' 
   (some of the displayed tasks may belong to subprojects).
api:tasks - Displays the tasks runnable from project ':api'.
webapp:tasks - Displays the tasks runnable from project ':webapp'.

Aşağıda, bir tablo açıklamasındaki farklı seçeneklerdeki bazı komutların listesi verilmiştir.

Sr. No. Komut Açıklama
1 gradle –q yardım –görev <görev adı> Belirli bir görev veya birden çok görev hakkında kullanım bilgilerini (yol, tür, açıklama, grup gibi) sağlar.
2 gradle –q bağımlılıkları Seçilen projenin bağımlılıklarının bir listesini sağlar.
3 gradle -q api: bağımlılıklar - konfigürasyon <görev adı> Yapılandırmaya ilişkin sınırlı bağımlılıkların listesini sağlar.
4 gradle –q buildEnvironment Derleme komut dosyası bağımlılıklarının listesini sağlar.
5 gradle -q bağımlılık Belirli bir bağımlılık hakkında fikir verir.
6 Gradle –q özellikleri Seçilen projenin özelliklerinin listesini sağlar.