Tâches incrémentielles et vérifications d’actualisation
Rendez vos tâches personnalisées rapides et correctes en déclarant leurs entrées et leurs sorties afin que Gradle puisse ignorer le travail déjà à jour.
Tâches incrémentielles et vérifications d’actualisation est une leçon Groovy & Gradle: JVM Automation and Build Engineering gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Groovy & Gradle: JVM Automation and Build Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Groovy & Gradle: JVM Automation and Build Engineering comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why Tasks Get Skipped
Gradle is fast because it does not redo work. If a task ran before and nothing it depends on changed, Gradle marks it UP-TO-DATE and skips it. You enable this by declaring inputs and outputs.
Inputs and Outputs
Every task can declare what it reads (inputs) and what it produces (outputs). Gradle hashes them to decide whether to run.
Declaring File Inputs
Annotate or register input files so Gradle watches them for changes.
tasks.register('process') {
inputs.file 'data/in.txt'
outputs.file 'build/out.txt'
}The Up-to-Date Decision
On each run Gradle compares current input/output hashes to the last run. If both match, the task is skipped; if any input changed, it re-runs.
Property Inputs
Non-file inputs (a flag, a version string) are declared with inputs.property so changing them also invalidates the cache.
tasks.register('gen') {
inputs.property 'version', project.version
outputs.dir 'build/gen'
}Custom Task Types
For reusable logic, write a task class with annotated properties: @InputFile, @OutputFile, @Input. Gradle reads the annotations automatically.
An Annotated Task Class
Annotations tell Gradle how to track each property without manual inputs/outputs wiring.
class Copy extends DefaultTask {
@InputFile File source
@OutputFile File dest
@TaskAction void run() { dest.text = source.text }
}Incremental Inputs
For tasks over many files, @Incremental inputs let the action process only the files that actually changed since last run.
The Build Cache
Beyond up-to-date checks, the build cache can reuse outputs from a previous run on any machine, keyed by the same input hashes — huge for CI.
org.gradle.caching=trueCommon Mistakes
Forgetting to declare an input is the classic bug: Gradle skips a task that should have re-run, producing stale output. Always declare every input that affects the result.
Forcing a Rerun
To verify caching or work around a stale state, run with --rerun-tasks to ignore up-to-date checks for one build, or use outputs.upToDateWhen { false } to mark a task as never up to date.
gradle build --rerun-tasksQuick Check
Test your incremental build knowledge.
Recap
You learned to build fast, correct tasks:
- Gradle skips tasks whose inputs and outputs are unchanged
- Declare files with
inputs.file/outputs.fileand values withinputs.property - Custom task classes use
@InputFile/@OutputFileannotations - The build cache reuses outputs across machines
- Undeclared inputs cause stale, incorrect skips
Apprends Groovy avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 12
- Leçons
- 48
Questions Fréquemment Posées
La leçon « Tâches incrémentielles et vérifications d’actualisation » est-elle gratuite ?
Oui — le texte complet de « Tâches incrémentielles et vérifications d’actualisation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Groovy & Gradle: JVM Automation and Build Engineering, passe à CoddyKit PRO. Le cours Groovy & Gradle: JVM Automation and Build Engineering comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tâches incrémentielles et vérifications d’actualisation » ?
Rendez vos tâches personnalisées rapides et correctes en déclarant leurs entrées et leurs sorties afin que Gradle puisse ignorer le travail déjà à jour. Tu pratiques Groovy & Gradle: JVM Automation and Build Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Groovy & Gradle: JVM Automation and Build Engineering ?
Aucune expérience préalable n'est requise. Groovy & Gradle: JVM Automation and Build Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Tâches incrémentielles et vérifications d’actualisation » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Groovy & Gradle: JVM Automation and Build Engineering ?
Oui. Chaque leçon Groovy & Gradle: JVM Automation and Build Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Définition de tâches personnalisées
- Types et actions des tâches
- Propriétés et configuration des tâches
- Tâches incrémentielles et vérifications d’actualisation