Как мне управлять задачами после сборки?

У меня есть Java-приложение.

Я могу запустить задачу Maven Release, которая сделает для меня несколько приятных вещей:

  • Измените номер версии с 1.0.0-SNAPSHOT на 1.0.0.
  • Увеличьте номер версии в моем pom до 1.0.1-SNAPSHOT
  • Пометить релиз в системе контроля версий
  • Загрузите полученный пакет в мой репозиторий maven.

Я хотел бы пойти дальше. У меня есть некоторые шаги после сборки, которые я сейчас делаю вручную.

  1. Обновите XML-файл конфигурации launch4j соответствующей версией.
  2. Оберните полученную банку в исполняемый файл, используя launch4j
  3. Скопируйте полученный EXE-файл в каталог пакета
  4. Скопируйте несколько вспомогательных файлов в каталог пакета
  5. Заархивируйте каталог пакета
  6. Отправьте пакет моим тестерам по электронной почте.

В конце концов у меня будет дополнительная задача по созданию установщика, использующего каталог пакета.

Я не знаю, являются ли maven или ant правильными инструментами для автоматизации моих оставшихся 6 задач, но похоже, что любой из них или их комбинация потенциально могут выполнить то, что мне нужно.

Вероятно, я мог бы написать пакетный файл или простой сценарий Perl, чтобы сделать эти вещи быстрее, чем выяснять, как это сделать, но я бы предпочел, чтобы все было максимально стандартно, чтобы я не брал на себя дополнительную ответственность за поддержку взломать процесс выпуска навсегда.

Мне кажется, что это задачи, которые могут не входить в стандартную часть сборки/выпуска, но достаточно часто встречаются, поэтому для их выполнения должна быть наилучшая/наиболее распространенная практика.


person Steve Kallestad    schedule 17.06.2013    source источник


Ответы (2)


Я бы предложил использовать плагин maven-assembly-plugin, а также плагин maven-launch4j-plugin во время сборки.

  1. Обновите XML-файл конфигурации launch4j соответствующей версией.

    поместите заполнитель в XML-файл конфигурации и позвольте maven заменить его во время сборки.

  2. Оберните полученную банку в исполняемый файл, используя launch4j

    используйте launch4j-maven-plugin для создания исполняемого файла.

  3. Скопируйте полученный EXE-файл в каталог пакета

    Я бы предложил поместить полученный артефакт в менеджер репозитория, а не в отдельную папку, потому что в Maven все артефакты хранятся в репозитории. Может потребоваться настроить собственный менеджер репозиториев (Artifactory, Nexus, Archiva).

  4. Скопируйте несколько вспомогательных файлов в каталог пакета

    Используя их как ресурсы (src/main/resources), они будут скопированы автоматически.

  5. Заархивируйте каталог пакета

    Используйте плагин maven-assembly-plugin для создания результирующего zip-файла.

  6. Отправьте пакет моим тестерам по электронной почте.

    Вы можете использовать CI, например, Jenkins и т. д., чтобы отправить окончательное письмо, или вы можете просмотреть maven-changes-plugin, который может быть решением .

Это означает, что все упомянутые вами шаги могут быть обработаны Maven во время обычной сборки. Это означает, что в конечном итоге вы можете использовать maven-release-plugin для создания полной версии, которая содержит все вышеперечисленные шаги и создает все желаемые артефакты.

person khmarbaise    schedule 18.06.2013
comment
В итоге я использовал maven-copy-plugin для копирования и создания zip-файла. Документация очень понятная. evgeny-goldin.com/wiki/Copy-maven-plugin Я работает над тем, чтобы Дженкинс работал правильно. Плагин launch4j-maven был почти таким же простым, как копирование моего xml-файла launch4j в мой файл pom. Несколько необходимых изменений для прополки и использования ${project.version} в качестве переменной в некоторых местах работали хорошо. Кроме того, я использовал плагин тени для сборки jar для launch4j. Одно замечание: плагины, работающие на одной фазе, обрабатываются в том порядке, в котором они объявлены в файле pom. - person Steve Kallestad; 19.06.2013

Если бы я был вами, я бы попробовал комбинацию из следующего:

person rimero    schedule 18.06.2013