compileJava Gradle не может записать файлы .class, если кеш включен, а выходной каталог ресурсов совпадает с выходным каталогом классов

Применяется к Gradle 7.0 и более ранним версиям.

Каждый второй цикл очистки/сборки файлы не записываются в .

Проблема появляется только когда:

  • В проекте очень мало java-файлов (1-2 файла) и несколько файлов ресурсов.
  • sourceSets.main.java.outputDir == sourcesSets.main.java.output.resourceDir
  • кеш включен для задачи

Поведение такое:

  1. clean -> build: работает, файлы пишутся в $buildDir/classes
  2. Повторите шаг 1: не удается, .classфайлы НЕ пишутся
  3. Повтор 1: работает...
  4. так далее...

При этих условиях проблема не возникает, если выполняется одно из следующих условий:

  1. Отключение кеша глобально или для compileJavaзадача
  2. Выходной каталог ресурсов отличается от classesDir
  3. Нет ресурсов
  4. Строящийся проект больше (очевидно, некоторые проблемы со временем).

Проблема случайным образом возникает в других небольших подпроектах на разных машинах и в случайное время. Я искал несколько дней и не нашел подобной проблемы, упомянутой в другом месте, поэтому любая подсказка будет очень полезной.

Спасибо

0 ответов

Другие вопросы по тегам