- Desde o Gradle 8.6, em ambiente Windows, o erro 'Could not move temporary workspace...' passou a ocorrer com frequência por conflito com programas antivírus, causando falhas frequentes no build, mas foi finalmente resolvido no Gradle 9.1 RC.
- Usuários de Windows sairão de um erro de build sofrido por mais de um ano e poderão executar builds com o Gradle normalmente a partir da versão 9.1. (Issue relacionado: #31438)
Como funcionava nas versões anteriores
- Garante a imutabilidade do cache de dependências aplicando file lock diretamente no próprio arquivo. É um método simples e objetivo.
A partir da versão 8.6
- Para melhorar o desempenho, foi introduzido o
CacheBasedImmutableWorkspaceProvider, que gera arquivos temporários baseados em UUID e os move para um caminho exclusivo após o processamento.
- Esse método foi introduzido para resolver a perda de desempenho do bloqueio por arquivo durante testes de integração.
- No ambiente Windows, surgiu um problema de falha ao mover arquivos temporários devido ao conflito com a funcionalidade de monitoramento em tempo real de antivírus (aquisição de lock na criação de novos arquivos).
Como é o patch da versão 9.1
- Foi introduzida uma estratégia de lock diferenciada por sistema operacional.
- Ambiente Windows: adotada a estratégia LockingStrategy.WORKSPACE_LOCK. Isso cria um subdiretório (\workspace) dentro do caminho de cache e obtém lock para todo o subdiretório, bloqueando a interferência de arquivos individuais do antivírus e resolvendo o problema.
- Ambientes fora do Windows: mantém o ATOMIC_MOVE (o comportamento da versão 8.6).
Ainda não há comentários.