0Pricing
Kotlin Academy · Lekcja

Niestandardowe zadania

Automatyzuj pracę

Niestandardowe zadania to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Czym jest zadanie Gradle?

Zadanie to jednostka pracy wykonywanej podczas kompilacji — kompilowanie, kopiowanie plików lub uruchamianie narzędzia. Własne zadania pozwalają automatyzować czynności specyficzne dla projektu.

Rejestrowanie zadania

Użyj tasks.register wraz z interfejsem API configuration-avoidance. Jest on preferowany zamiast starszego tasks.create, ponieważ działa leniwie.

tasks.register("hello") {
    doLast {
        println("Hello from Gradle")
    }
}

doFirst i doLast

Akcje zadań są wykonywane w fazie wykonywania. doFirst dodaje akcję na początku, a doLast na końcu. Kod znajdujący się poza nimi jest wykonywany podczas konfiguracji.

tasks.register("greet") {
    doFirst { println("start") }
    doLast { println("end") }
}

Opis i grupa zadania

Ustaw wartości group i description, aby zadanie było przejrzyście widoczne w wynikach polecenia ./gradlew tasks.

tasks.register("cleanLogs") {
    group = "maintenance"
    description = "Deletes generated log files"
    doLast { /* ... */ }
}

Zadania typowane

Zarejestruj zadanie wbudowanego typu, aby ponownie wykorzystać jego zachowanie. Copy kopiuje pliki w sposób deklaratywny.

tasks.register<Copy>("copyDocs") {
    from("src/docs")
    into("build/docs")
}

Zależności zadań

Wyraź kolejność za pomocą dependsOn. Zależne zadanie zostanie uruchomione jako pierwsze.

tasks.register("deploy") {
    dependsOn("build")
    doLast { println("deploying") }
}

Konfigurowanie istniejącego zadania

Uzyskaj dostęp do wcześniej zarejestrowanego zadania (dodawanego przez wtyczkę) i dostosuj je.

tasks.named("test") {
    // configure the existing test task
}

tasks.test {
    maxParallelForks = 2
}

Dane wejściowe i wyjściowe zadania

Deklarowanie wartości inputs i outputs umożliwia sprawdzanie aktualności: Gradle pomija zadanie, gdy nic się nie zmieniło.

tasks.register("generate") {
    inputs.file("data/template.txt")
    outputs.file("build/generated.txt")
    doLast { /* generate */ }
}

Kompilacje przyrostowe

Przy prawidłowo określonych danych wejściowych i wyjściowych ponowne uruchomienie niezmienionego zadania wyświetla komunikat UP-TO-DATE i nie wykonuje żadnej pracy. Jest to kluczowe dla szybkości Gradle.

Własne klasy zadań

Aby ponownie wykorzystywać logikę, zdefiniuj klasę rozszerzającą DefaultTask i zawierającą metodę @TaskAction.

import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction

abstract class GreetTask : DefaultTask() {
    @TaskAction
    fun run() {
        println("Hello")
    }
}

Uruchamianie własnego zadania

Każde zarejestrowane zadanie można wywołać po nazwie za pomocą wrappera.

// ./gradlew hello
// ./gradlew copyDocs
// ./gradlew deploy

Szybki test

Chcesz, aby akcja została wykonana w fazie wykonywania, po pozostałych pracach zadania. Którego bloku użyjesz?

Podsumowanie

Własne zadania pozwalają automatyzować pracę:

  • tasks.register + doFirst/doLast
  • Zadania typowane, takie jak Copy, oraz dependsOn do określania kolejności
  • Deklarowanie wartości inputs/outputs na potrzeby sprawdzania aktualności
  • Własne klasy DefaultTask z metodą @TaskAction

Następnie: katalogi wersji.

Często zadawane pytania

Czy lekcja „Niestandardowe zadania” jest bezpłatna?

Tak — pełny tekst „Niestandardowe zadania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Niestandardowe zadania”?

Automatyzuj pracę Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Niestandardowe zadania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Gradle Kotlin DSL
  2. Zależności i wtyczki
  3. Niestandardowe zadania
  4. Katalogi wersji
← Powrót do Kotlin Academy