2009-12-30 91 views
11

我有一个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目标

那么如何配置哈德森服务器和/或Maven从jobs/PROJECT_NAME/modules自动删除构建文物,并将它们保留在jobs/PROJECT_NAME/builds下?

回答

5

我就遇到了这个问题而回,只是用一个cronjob去:

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

每小时一次,它会删除所有的焦油,耳朵,从这个目录中的战争,jar文件(及任何子目录)。可能会有更多以哈得逊为中心的方式做到这一点...

1

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

+0

人们,记得在保存后执行作业。 – Lucas 2013-04-19 21:48:30