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