【问题标题】:How to delete unneeded build artifacts in Hudson如何在 Hudson 中删除不需要的构建工件
【发布时间】:2010-12-31 02:04:32
【问题描述】:

我有一个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 文件的链接。

我的构建只是针对父 pom.xml 执行 clean install 目标。

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

【问题讨论】:

    标签: maven-2 hudson


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 各位,记得在保存后执行作业。
      【解决方案3】:

      我不久前遇到了这个问题,只是使用了一个 cronjob:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-07
        • 2010-10-27
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        • 2010-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多