カスタムタスク
作業を自動化します
「カスタムタスク」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。
Gradleのタスクとは
タスクは、コンパイル、ファイルのコピー、ツールの実行などを行うビルド作業の単位です。カスタムタスクを使うと、プロジェクト固有の定型作業を自動化できます。
タスクの登録
configuration-avoidance API を使い、tasks.register でタスクを登録します。遅延評価されるため、古い 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/doLastCopyなどの型付きタスクと、実行順序を指定するdependsOn- 最新状態チェックのための
inputs/outputsの宣言 @TaskActionを持つカスタムDefaultTaskクラス
次はバージョンカタログです。
よくある質問
「カスタムタスク」レッスンは無料ですか?
はい。「カスタムタスク」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。
「カスタムタスク」で何を学びますか?
作業を自動化します ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Kotlin Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「カスタムタスク」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このKotlin Academyレッスンでコードを書いて実行できますか?
はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。