如何在Hudson中删除不需要的构建工件

时间:2009-12-30 11:38:07

标签: maven-2 hudson

我有一个Hudson CI服务器正在构建一个maven构建。具有两个子项目的父项目。其中一个maven子项目创建了一个相当大的.war(10MB)文件,该文件存储在每个构建中。我想摆脱.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

我已尝试根据this SO question使用作业配置,即归档工件丢弃除最后一个成功/稳定工件之外的所有工件以节省磁盘空间。但实际上这确实如下:

  1. jobs/PROJECT_NAME/builds/2009-12-29_17-23-39/archive/PROJECT_NAME/web/target/PROJECT_NAME-web-1.0.war下为最后两次构建存储了一个附加副本。所以它实际上会增加磁盘空间消耗。
  2. 此hudson作业的网页包含最后两个版本中.war文件的链接。
  3. 我的构建只针对父 pom.xml 执行clean install个目标。

    那么如何配置Hudson服务器和/或Maven从jobs/PROJECT_NAME/modules下自动删除构建工件并将它们保留在jobs/PROJECT_NAME/builds下?

3 个答案:

答案 0 :(得分:6)

我使用post build task来复制/删除一些文件。

答案 1 :(得分:5)

我前一段时间遇到了这个问题,然后带着一个cronjob:

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

每小时一次,它将从此目录(以及所有子目录)中删除所有tar,ear,war和jar文件。可能有更多以哈德森为中心的方式......

答案 2 :(得分:1)

我带着类似的问题来到这里;我的问题已通过“删除旧版本”复选框解决。如果您不关心像OP那样保留旧的构建数据,则此复选框是一个更简单的解决方案。