В наших сборках мы встраиваем «файл информации о сборке» в файлы tar и zip, создаваемые нашими сборками.Эти файлы содержат метки времени, номера сборок, идентификаторы коммитов и веток, указания сборщика (Jenkins или разработчика) и т. Д.
Эти файлы обязательно меняются при каждой сборке.Если ничего не изменилось, дата изменилась.
Gradle обладает этой замечательной функцией, которая распознает, изменились ли входные данные задачи, и не выполняет задачу, если входные данные не изменились.К сожалению, в наших сборках файл информации о сборке меняется с каждой сборкой, и это вызывает сборку выпусков и заархивированных выпусков, даже если ни один из «значимых» входов не изменился.
Есть ли какой-нибудь способ пометить тегисоздать информационный файл как «незначительный ввод», то есть указать, что - даже если этот файл изменился - если ничего не изменилось, задание не нужно повторно выполнять (даже если вывод задания будет другим - это будеттолько различную информацию о сборке - и это различие не считается существенным.)
Например, если список «измененных входов» был доступен в виде списка, можно написать собственное закрытие «UpToDateWhen», которое распознает, когдасписок содержит единственный элемент файла информации о сборке.Но, насколько я знаю, такой «измененный список ввода» не доступен и не доступен для создания функций скрипта.
Это немного похоже на некоторые очень старые потоки, которые говорят о том, что файлы Jar перестраиваются при манифесте.дата (свойство) изменения;в то время у них, похоже, не было решения, но это был также Gradle 1 или 2. Может быть, Gradle 5 немного улучшил ситуацию?Мы используем Gradle 5.6.2.