В одном из моих проектов время сборки слишком велико. Мне удалось найти зависимости, но каждый раз, когда я выполняю сборку, мне нужно выполнить clean , который удаляет все файлы Java, а после этого javac перекомпилирует все. Это отнимает много времени.
Я использую ANT для сборки, и я думал; Можно ли выполнить clean (который удаляет файлы) по требованию? Для лучшего понимания я составил пример:
- target top : сборка top.jar
- target first : создает first.jar
- target second : создает second.jar
top.jar зависит от first.jar и second.jar . Если я изменю какие-либо файлы, связанные с second.jar , ANT запустит цель second , и когда это повлияет на top.jar , ANT запустит top target. Пока все хорошо.
Но может случиться так, что я переименую класс в second.jar - например, с помощью eclipse - и получу два класса: старый и новый класс. Разные имена, но контент одинаковый. Это может быть проблемой, поэтому я должен постоянно запускать цель clean .
В приведенном выше примере у меня нет проблем с запуском чистой only для цели, которая изменилась.
Итак, мой вопрос: можно ли определить, что содержимое определенной папки изменилось, и когда это произойдет, запустить задачу ANT по требованию?
Я оглянулся и обнаружил задание ANT с почти той же функциональностью, что и мне. Он называется зависит . К сожалению, он не выполняет полное удаление.