0Pricing
Kotlin Academy · Урок

Пользовательские задачи

Автоматизируйте работу

«Пользовательские задачи» — бесплатный урок Kotlin Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Academy содержит 4 уроков всего.

Что такое задача Gradle

Задача — это единица работы сборки: компиляция, копирование файлов, запуск инструмента. Собственные задачи позволяют автоматизировать специфические для проекта действия.

Регистрация задачи

Используйте tasks.register с API избегания конфигурации. Этот вариант предпочтительнее устаревшего tasks.create, поскольку он использует ленивую настройку.

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

doFirst и doLast

Действия задач выполняются на этапе выполнения. doFirst добавляет действие в начало, а doLast — в конец. Код за их пределами выполняется во время настройки.

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

Описание и группа задачи

Задайте group и description, чтобы задача аккуратно отображалась в ./gradlew tasks.

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

Типизированные задачи

Зарегистрируйте задачу встроенного типа, чтобы повторно использовать готовое поведение. Copy декларативно копирует файлы.

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

Зависимости задач

Задавайте порядок с помощью dependsOn. Сначала выполняется зависимость.

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

Настройка существующей задачи

Обратитесь к предварительно зарегистрированной задаче, добавленной плагином, и измените её настройки.

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

tasks.test {
    maxParallelForks = 2
}

Входные и выходные данные задач

Объявление inputs и outputs включает проверку актуальности: Gradle пропускает задачу, если ничего не изменилось.

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

Инкрементальные сборки

При правильно заданных входных и выходных данных повторный запуск неизменившейся задачи выводит UP-TO-DATE и не выполняет работу. Это основа высокой скорости Gradle.

Классы собственных задач

Для повторно используемой логики определите класс, расширяющий DefaultTask, с методом @TaskAction.

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

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

Запуск своей задачи

Вызовите любую зарегистрированную задачу по имени с помощью оболочки.

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

Быстрая проверка

Вы хотите, чтобы действие выполнялось на этапе выполнения после остальной работы задачи. Какой блок следует использовать?

Итоги

Вы можете автоматизировать работу с помощью собственных задач:

  • tasks.register + doFirst/doLast
  • Типизированные задачи, такие как Copy, и dependsOn для задания порядка
  • Объявление inputs/outputs для проверки актуальности
  • Собственные классы DefaultTask с @TaskAction

Далее: каталоги версий.

Часто задаваемые вопросы

Урок «Пользовательские задачи» бесплатный?

Да — полный текст урока «Пользовательские задачи» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Academy, подпишись на CoddyKit PRO. Курс Kotlin Academy содержит 4 уроков всего.

Чему я научусь в уроке «Пользовательские задачи»?

Автоматизируйте работу Ты практикуешь Kotlin Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Kotlin Academy?

Предыдущий опыт не требуется. Kotlin Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Пользовательские задачи»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Kotlin Academy?

Да. Каждый урок Kotlin Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Kotlin DSL для Gradle
  2. Зависимости и плагины
  3. Пользовательские задачи
  4. Каталоги версий
← Назад к Kotlin Academy