compileJava Gradle не может записать файлы .class, если кеш включен, а выходной каталог ресурсов совпадает с выходным каталогом классов
Применяется к Gradle 7.0 и более ранним версиям.
Каждый второй цикл очистки/сборки файлы не записываются в .
Проблема появляется только когда:
- В проекте очень мало java-файлов (1-2 файла) и несколько файлов ресурсов.
-
sourceSets.main.java.outputDir == sourcesSets.main.java.output.resourceDir
- кеш включен для задачи
Поведение такое:
- clean -> build: работает, файлы пишутся в
$buildDir/classes
- Повторите шаг 1: не удается,
.class
файлы НЕ пишутся - Повтор 1: работает...
- так далее...
При этих условиях проблема не возникает, если выполняется одно из следующих условий:
- Отключение кеша глобально или для
compileJava
задача - Выходной каталог ресурсов отличается от
classesDir
- Нет ресурсов
- Строящийся проект больше (очевидно, некоторые проблемы со временем).
Проблема случайным образом возникает в других небольших подпроектах на разных машинах и в случайное время. Я искал несколько дней и не нашел подобной проблемы, упомянутой в другом месте, поэтому любая подсказка будет очень полезной.
Спасибо