0Pricing
Groovy & Gradle: JVM Automation and Build Engineering · Pelajaran

Ekstensi Plugin & DSL yang Dapat Dikonfigurasi

Berikan plugin Gradle Anda DSL konfigurasi yang rapi menggunakan objek ekstensi, properti, dan konvensi untuk pengalaman pengguna yang baik.

Ekstensi Plugin & DSL yang Dapat Dikonfigurasi adalah pelajaran Groovy & Gradle: JVM Automation and Build Engineering gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Groovy & Gradle: JVM Automation and Build Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Groovy & Gradle: JVM Automation and Build Engineering mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

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 convention for lazy defaults
  • Extensions separate user intent from plugin mechanics

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Ekstensi Plugin & DSL yang Dapat Dikonfigurasi” gratis?

Ya — teks lengkap “Ekstensi Plugin & DSL yang Dapat Dikonfigurasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Groovy & Gradle: JVM Automation and Build Engineering, upgrade ke CoddyKit PRO. Kursus Groovy & Gradle: JVM Automation and Build Engineering mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Ekstensi Plugin & DSL yang Dapat Dikonfigurasi”?

Berikan plugin Gradle Anda DSL konfigurasi yang rapi menggunakan objek ekstensi, properti, dan konvensi untuk pengalaman pengguna yang baik. Kamu berlatih Groovy & Gradle: JVM Automation and Build Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Groovy & Gradle: JVM Automation and Build Engineering?

Tidak diperlukan pengalaman sebelumnya. Groovy & Gradle: JVM Automation and Build Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Ekstensi Plugin & DSL yang Dapat Dikonfigurasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Groovy & Gradle: JVM Automation and Build Engineering ini?

Ya. Setiap pelajaran Groovy & Gradle: JVM Automation and Build Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memahami Plugin Gradle
  2. Membangun Plugin Biner
  3. Menerapkan & Mempublikasikan Plugin
  4. Ekstensi Plugin & DSL yang Dapat Dikonfigurasi
← Kembali ke Groovy & Gradle: JVM Automation and Build Engineering