Я хотел бы, чтобы моя задача Gradle:
- Выполните команду (внешний процесс для «запуска моего сервера»).
- Дождитесь определенного вывода моего внешнего процесса, который скажет «Сервер готов» в стандартном выводе.
- Сделайте что-нибудь в моей задаче gradle (в основном, чтобы поговорить с моей внешней задачей).
- Когда я закончу делать свои дела, завершите внешний процесс, запустив другую команду «остановить мой сервер».
- Когда обе команды будут выполнены, завершите задачу.
Это похоже на запуск сервера для запуска интеграционных тестов, но это не сервер типа tomcat/jetty, поэтому его нужно запускать из командной строки и ждать, пока сервер будет «готов» через стандартный вывод сервера.
В настоящее время я могу использовать задачу exec для запуска моей задачи и получения результата. Поэтому я думаю, что, вероятно, смогу кодировать на Groovy/Java, чтобы добиться того, чего хочу.
Однако кодирование этого, казалось бы, распространенного шаблона кажется утомительным. Поэтому мне интересно, есть ли более простой способ решить такие проблемы без лишнего кодирования - т.е. это общий шаблон, для которого у Gradle есть DSL?
Обратите внимание, что я новичок в Gradle, поэтому любые советы по этой теме также будут оценены.