У меня есть Java-приложение.
Я могу запустить задачу Maven Release, которая сделает для меня несколько приятных вещей:
- Измените номер версии с 1.0.0-SNAPSHOT на 1.0.0.
- Увеличьте номер версии в моем pom до 1.0.1-SNAPSHOT
- Пометить релиз в системе контроля версий
- Загрузите полученный пакет в мой репозиторий maven.
Я хотел бы пойти дальше. У меня есть некоторые шаги после сборки, которые я сейчас делаю вручную.
- Обновите XML-файл конфигурации launch4j соответствующей версией.
- Оберните полученную банку в исполняемый файл, используя launch4j
- Скопируйте полученный EXE-файл в каталог пакета
- Скопируйте несколько вспомогательных файлов в каталог пакета
- Заархивируйте каталог пакета
- Отправьте пакет моим тестерам по электронной почте.
В конце концов у меня будет дополнительная задача по созданию установщика, использующего каталог пакета.
Я не знаю, являются ли maven или ant правильными инструментами для автоматизации моих оставшихся 6 задач, но похоже, что любой из них или их комбинация потенциально могут выполнить то, что мне нужно.
Вероятно, я мог бы написать пакетный файл или простой сценарий Perl, чтобы сделать эти вещи быстрее, чем выяснять, как это сделать, но я бы предпочел, чтобы все было максимально стандартно, чтобы я не брал на себя дополнительную ответственность за поддержку взломать процесс выпуска навсегда.
Мне кажется, что это задачи, которые могут не входить в стандартную часть сборки/выпуска, но достаточно часто встречаются, поэтому для их выполнения должна быть наилучшая/наиболее распространенная практика.