Как удалить ненужные артефакты сборки в Хадсоне

У меня есть сервер Hudson CI, который создает сборку maven. Родительский проект с двумя подпроектами. Один из подпроектов maven создает довольно большой файл .war(10 МБ), который сохраняется для каждой сборки. Я бы хотел избавиться от этого файла .war, чтобы сохранить дисковое пространство, но я хотел бы сохранить все остальное в магазинах Hudson в истории (результаты тестов, графики и т.д.).

Файл .war хранится в jobs/PROJECT_NAME/modules/PACKAGE_NAME$SUB_PROJECT_NAME/builds/2009-12-23_11-59-11/archive/PACKAGE_NAME/SUB_PROJECT_NAME/1.0/SUB_PROJECT_NAME-1.0.war

Я попытался использовать конфигурацию заданий в соответствии с этим вопросом SO, а именно архивировать артефакты и отменить все, кроме последнего успешного/стабильного артефакта, чтобы сохранить дисковое пространство. Но это действительно делает следующее:

  • Дополнительная копия сохраняется для двух последних строчек в jobs/PROJECT_NAME/builds/2009-12-29_17-23-39/archive/PROJECT_NAME/web/target/PROJECT_NAME-web-1.0.war. Таким образом, это фактически немного увеличивает объем дискового пространства.
  • Веб-страница для этих заданий hudson содержит ссылки на .war файлы в двух последних сборках.

Моя сборка просто выполняет clean install цели против родительского pom.xml.

Итак, как настроить сервер Hudson и/или Maven для автоматического удаления артефактов сборки из jobs/PROJECT_NAME/modules и оставить их под jobs/PROJECT_NAME/builds?

Ответ 1

Я использую задачу пост-сборки, чтобы сделать некоторые файлы для копирования/удаления.

Ответ 2

Я столкнулся с этим вопросом некоторое время назад и просто пошел с cronjob:

10 * * * *  find jobs/PROJECT_NAME/modules/ -name "*[tejw]ar" -type f -exec rm -f {} \;

Один раз в час он удаляет все файлы tar, ear, war и jar из этого каталога (и любых подкаталогов). Может быть, более хадсон-ориентированный способ сделать это...

Ответ 3

Я пришел сюда с подобным вопросом; моя проблема была решена с помощью флажка "Удалить старые сборки". Если вы не заботитесь о сохранении старых данных сборки, подобных OP, этот флажок является более простым решением.