Eklenti Uzantıları ve Yapılandırılabilir DSL'ler
Uzantı nesneleri, özellikler ve kurallar kullanarak Gradle eklentiniz için kullanımı iyi bir deneyim sunan temiz bir yapılandırma DSL'si oluşturun.
Eklenti Uzantıları ve Yapılandırılabilir DSL'ler, CoddyKit'te ücretsiz bir Groovy & Gradle: JVM Automation and Build Engineering dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Groovy & Gradle: JVM Automation and Build Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Groovy & Gradle: JVM Automation and Build Engineering kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Configuring a Plugin
A good plugin lets users customize its behaviour through a readable block in their build script. Gradle calls this an extension — it is how plugins like the Java plugin expose settings.
What Is an Extension?
An extension is a plain object your plugin registers under a name. Users set its properties in a matching DSL block, and your tasks read those values.
Defining an Extension Class
Create a class holding the configurable properties.
class GreetingExtension {
String message = "Hello"
String recipient = "World"
}Registering the Extension
In the plugin apply method, register the extension under a DSL name.
void apply(Project project) {
project.extensions.create('greeting', GreetingExtension)
}Configuring in build.gradle
Users now configure the plugin with a clean block matching the extension name.
greeting {
message = 'Hi'
recipient = 'Gradle'
}Reading Extension Values in a Task
Wire the extension values into a task so configuration drives behaviour at execution time.
def ext = project.extensions.greeting
project.tasks.register('greet') {
doLast { println "${ext.message}, ${ext.recipient}!" }
}Lazy Properties
Modern plugins use the Provider API (Property<String>) so values are evaluated lazily, after the user has finished configuring.
abstract class Ext {
abstract Property<String> getMessage()
}Setting Conventions
Give sensible defaults with convention so the plugin works out of the box but stays overridable.
message.convention('Hello')Nested Extensions
Complex plugins nest extensions, e.g. a publishing block containing a repositories sub-block, by registering child objects.
Configuring Tasks from the Extension
The robust pattern is to register tasks and wire their lazy properties from the extension inside project.afterEvaluate or via providers, so user configuration is fully applied before values are read.
project.afterEvaluate {
project.tasks.greet.configure { message = project.extensions.greeting.message }
}Why Extensions Matter
Extensions separate what the user wants from how the plugin works. They make plugins discoverable, type-safe, and pleasant to configure — the hallmark of a reusable plugin.
Quick Check
Test your plugin extension knowledge.
Recap
You learned to make plugins configurable:
- Extensions expose a named DSL block to users
- Register with
project.extensions.create - Tasks read extension values at execution time
- Use the Provider API and
conventionfor lazy defaults - Extensions separate user intent from plugin mechanics
Yapay zeka eğitmeniyle Groovy öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 12
- Dersler
- 48
Sıkça Sorulan Sorular
“Eklenti Uzantıları ve Yapılandırılabilir DSL'ler” dersi ücretsiz mi?
Evet — “Eklenti Uzantıları ve Yapılandırılabilir DSL'ler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Groovy & Gradle: JVM Automation and Build Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Groovy & Gradle: JVM Automation and Build Engineering kursu toplamda 4 dersten oluşur.
“Eklenti Uzantıları ve Yapılandırılabilir DSL'ler” dersinde ne öğreneceğim?
Uzantı nesneleri, özellikler ve kurallar kullanarak Gradle eklentiniz için kullanımı iyi bir deneyim sunan temiz bir yapılandırma DSL'si oluşturun. Groovy & Gradle: JVM Automation and Build Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Groovy & Gradle: JVM Automation and Build Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Groovy & Gradle: JVM Automation and Build Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Eklenti Uzantıları ve Yapılandırılabilir DSL'ler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Groovy & Gradle: JVM Automation and Build Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Groovy & Gradle: JVM Automation and Build Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Gradle Eklentilerini Anlama
- İkili Eklentiler Oluşturma
- Eklentileri Uygulama ve Yayımlama
- Eklenti Uzantıları ve Yapılandırılabilir DSL'ler