В настоящее время я работаю над довольно крупным монолитным Java-проектом, созданным с помощью ANT, и пытаюсь восстановить его с помощью Gradle.
Я определил некоторые исходные наборы и задачи для компиляции всего проекта. Существует много зависимостей между компонентами и иногда они также компилируют классы в один и тот же каталог / подкаталоги.
Проблема в том, что очень часто при компиляции исходных наборов удаляются некоторые классы, которые уже скомпилированы другими исходными наборами. Я предполагаю, что это связано с этой функцией https://docs.gradle.org/4.2-rc-1/release-notes.html#safer-handling-of-stale-output-files, но мне не удается заставить ее работать с использованием правильного input / output.dir
Можно ли деактивировать удаление файлов, которые считаются безопасными для удаления с помощью Gradle? Например, для моего полного каталога скомпилированных классов?
Большое спасибо.
Пример удаления:
sourceSetX{
java {
srcDirs = ['src/']
include "path/to/sourceSetsX/subdirectory/"
outputDir = file('classes')
}
}
> Task :compileSourceSetXJava
Deleting stale output file: C:/path/to/project/classes
...
Например, этот sourceSet компилируется в подкаталоге, но удаляет весь каталог outputDir.