Giriş

Hedef kitle : Başlangıç - orta seviye geliştirici Gradle ile.

Yeni bir Gradle eklenti projesi başlatmak korkutucu gelebilir. Neyse ki, Gradle etkileşimli güçlü bir asistan sağlar, görevi.init, tam ve temiz kullanıma hazır bir proje yapısı oluşturur. Bu rehber, bu aracı nasıl kullanacağınızı göstererek sağlam bir eklenti tabanı oluşturmayı anlatır, yapısını açıklar ve ilk derleme görevlerini nasıl çalıştıracağınızı gösterir.

Adım 1: Proje asistanını başlat

Komut`gradle init`Başlangıç noktasıdır. Bir komut satırı asistansını başlatır ve projeyi yapılandırmak için bir dizi soru sorar.

Boş bir klasörde terminalinizi açın ve çalıştırın:

gradle init

Asistan sizi yönlendirecektir. Bir Gradle eklentisi için Kotlin’de yazılmış olan seçenekler şunlardır:

  1. Oluşturulacak proje türünü seçin:Seçiniz`Gradle plugin`.

  2. (No additional characters)Seçin`Kotlin`.

  3. Derleme betiği DSL:Seçin`Kotlin`.

  4. Proje adı:Projeniz için bir isim girin (örnek:`site-baker`).

  5. Eklenti kimlik:Eklentinize benzersiz bir tanımlayıcı verin (örnek:`com.cheroliv.site-baker`)

  6. Plugin sınıfı:Uygulama sınıfının adını belirtin (örnek:`com.cheroliv.SiteBakerPlugin`).

Tamamlandığında, Gradle tam bir dosya ağacı oluşturur.

Başlatma süreci diyagramı
@startuml
start
:Başlat `gradle init`;
:Choisir "Gradle eklenti";
:Seçin "Kotlin" (dil);
:Seç "Kotlin" (DSL);
:İsim, ID ve sınıf giriniz;
:Oluşturulmuş Proje;
stop
@enduml

Adım 2 : Oluşturulan yapıyı anlamak

Asistan, kök projeyi eklentinin kaynak kodundan ayıran çok modüllü bir proje yapısı oluşturur.

.
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── plugin/
│   ├── build.gradle.kts
│   └── src/
│       ├── main/
│       │   └── kotlin/
│       │       └── com/cheroliv/SiteBakerPlugin.kt
│       ├── test/
│       │   └── kotlin/
│       │       └── com/cheroliv/SiteBakerPluginTest.kt
│       └── functionalTest/
│           └── kotlin/
│               └── com/cheroliv/SiteBakerPluginFunctionalTest.kt
└── settings.gradle.kts

Anahtar dosyalar ve klasörler

  • settings.gradle.kts: Bu dosya kök dizininde derlemeye dahil edilen modülleri tanımlar. Burada, alt projeyi içerir.plugin.

[source,kotlin] ---- rootProject.name = "site-baker include("plugin") ----

  • plugin/build.gradle.kts: Bu, eklenti yapılandırmanızın kalbidir. Eklentiyi uygular.java-gradle-plugin, bağımlılıkları bildirir ve eklenti meta verilerini yapılandırır.

[source,kotlin] ---- eklentiler { java-gradle-plugin alias(libs.plugins.kotlin.jvm) }

gradlePlugin { val siteBaker by plugins.creating { id = "com.cheroliv.site-baker implementationClass = "com.cheroliv.SiteBakerPlugin } } ----

  • src/main/: Eklentinizin kaynak kodunu içerir.

  • `src/test/`Birim testlerini içerir. Hızlı ve izole olarak çalışır.

  • `src/functionalTest/`Fonksiyonel testleri içerir. Bu testler kullanır`GradleRunner`Gradle’ın tam sürümününü bir test projesi üzerinde çalıştırarak, eklentinizin gerçek kullanımını simüle edin.

Adım 3: Eklenti oluşturun ve test edin

Oluşturulan proje şunu içerirGradle Sarmalayıcı(gradlew). Bu, Gradle’i çalıştırmanın önerilen yoludur çünkü tüm geliştiricilerin aynı sürümü kullanmasını sağlayarak tekrarlanabilir derlemeler garantiler.

Temel görevler

  • Projeyi inşa etmek

Bu komut kodunuzu derler, tüm testleri (birim ve fonksiyonel) çalıştırır ve eklentiniz için JAR dosyasını hazırlar. [source,bash] ---- ./gradlew build ----

  • Tüm kontrolleri başlat:

Görev`check`doğrulama görevlerini çalıştıran bir takma adıdır, şunları içeren`test` et functionalTest. [source,bash] ---- ./gradlew check ----

  • Sadece birim testlerini çalıştır :

Geliştirme sırasında hızlı geri bildirim için [source,bash] ---- ./gradlew test ----

Komut`./gradlew :test`, kök projeyi açıkça hedefleyen, başarısız olacaktır çünkü bu proje test içermiyor. Buna karşılık : * ./gradlew test`calışır çünkü Gradle görevi yürütür`test`onu taşıyan tüm alt projelerde (burada, modül`plugin). * `./gradlew :plugin:test`bu modül testlerini çalıştırmanın en açık komutudur`plugin`sadece.

  • Yalnızca fonksiyonel testleri çalıştır:

Daha yavaş olanlar, genel davranışı doğrulamak için faydalıdır. [source,bash] ---- ./gradlew functionalTest ----

Test sonuçları klasörde oluşturulur`plugin/build/reports/tests/`. Dosyayı açabilirsiniz.`index.html`Tarayıcınızda detaylı bir rapor için

Sonuç

Birkaç dakika içinde,`gradle init`Size sağlam, modern ve eksiksiz bir proje temeli sağlandı. Açık bir yapı, önceden yapılandırılmış birim ve fonksiyonel testler, ayrıca Gradle Wrapper sayesinde tekrarlanabilir bir derleme sistemi mevcuttur.

Şimdi dosyayı açmaya hazırsınız`SiteBakerPlugin.kt`ve eklentinizin iş mantığını buraya eklemeye başlayın!

İlgili Makaleler