- Depuis Gradle 8.6, une erreur 'Could not move temporary workspace...' survenait fréquemment sous Windows, provoquant des échecs de build à cause d’un conflit avec les logiciels antivirus, mais elle est finalement corrigée dans Gradle 9.1 RC.
- Les utilisateurs Windows, qui subissaient ce problème de build depuis plus d’un an, pourront exécuter normalement les builds Gradle à partir de la version 9.1. (Issue associée : #31438)
Fonctionnement des versions précédentes
- Verrouiller directement chaque fichier avec un file lock pour garantir l’immuabilité du cache de dépendances. Une approche simple et claire.
Fonctionnement depuis la version 8.6
- Pour améliorer les performances,
CacheBasedImmutableWorkspaceProvider a été introduit, créant des fichiers temporaires basés sur des UUID, puis les déplaçant vers un chemin unique après le traitement.
- Cette méthode a été introduite pour résoudre les problèmes de baisse de performance du file lock lors des tests d’intégration.
- En environnement Windows, un conflit avec la surveillance en temps réel des antivirus (acquisition du lock lors de la création de nouveaux fichiers) a provoqué un échec du déplacement des fichiers temporaires.
Correctif dans la version 9.1
- Adoption d’une stratégie de verrouillage différenciée par système d’exploitation.
- En environnement Windows : adoption de LockingStrategy.WORKSPACE_LOCK. Cela crée un sous-répertoire (
\workspace) dans le chemin du cache, acquiert un verrou sur l’ensemble de ce sous-répertoire et bloque ainsi les interférences fichier par fichier des programmes antivirus, ce qui règle le problème.
- Hors environnement Windows : conservation de l’ATOMIC_MOVE (version 8.6).
Aucun commentaire pour le moment.