Вы всегда должны использовать clean в сборке CI.Сборки CI должны быть воспроизводимыми, для этого нужно начинать с нуля!
И процесс занимает больше времени: весь смысл использования CI (одного из многих) заключается в том, что вы можете продолжать работать, пока он работает, так чтоне проблема.
Но мне нравится использовать несколько уровней CI для каждого проекта:
- Первое задание компилируется и выполняется некоторые базовые тесты *, эта сборка должна занятьменее чем за 5 минут
- в случае успеха второе задание выполняет все тесты *, показатели кода, javadocs и т. д.
- если это успешно, третье задание развертывает сборку на тестовом сервере
(или вы можете позволить первому заданию запускать одновременно и второе, и третье задание)
* Функцию некоторых тестов / всех тестов можно реализовать, настроив подключаемый модуль maven surefire по-разному для профиля)