#input #properties #gradle #output #task
#ввод #свойства #gradle #вывод #задача
Вопрос:
Если моя задача изменяет какое-либо свойство и при ее выполнении дважды инкрементная сборка не может быть выполнена. И каждый раз эту задачу приходится выполнять заново. Могу ли я использовать метод upToDateWhen() для некоторой проверки свойства?
Есть ли какая-то цель, чтобы свойство нельзя было объявить как выходные данные задачи?
Изображение взято из: (Muschko, Benjamin. «Подключение к жизненному циклу сборки». Gradle в действии. Н.п.: н.п., 2014)
Комментарии:
1.
upToDateWhen
определенно предназначен для проверки, должна ли выполняться задача. Не совсем понял, что вы имеете в виду, но если оно соответствует вашим потребностям, не стесняйтесь его использовать.2. Я хочу спросить, почему Gradleware создал интерфейс TaskOutput без метода property?
3. Затем спросите команду gradle. Я полагаю, что это слишком временная сущность, чтобы регистрироваться как выходные данные задачи.
4. К вашему сведению: издательству Manning Publications может не понравиться, если вы используете защищенный авторским правом материал из какой-либо из их книг.
5. Извините. Я добавляю cite в книгу, из которой я взял фотографию.
Ответ №1:
Объявления ввода и вывода задачи используются для определения того, является ли задача «актуальной» с момента последней сборки, и поэтому ее можно безопасно пропустить в текущей сборке. Отсутствие какого-либо объявления выходных данных означает, что задача всегда устарела при запуске сборки. Поскольку свойства не сохраняются во всех сборках, задача, которая выводит свойство, всегда будет устаревшей и ее нужно будет запускать, что эквивалентно не указанию свойства в качестве выходных данных задачи.