如何在Hudson中删除不需要的构建产物

12
我��一个Hudson CI服务器,正在构建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下。
我尝试使用作业配置,根据这个SO问题,即归档工件丢弃除最后一个成功/稳定工件之外的所有工件以节省磁盘空间。但实际上做了以下几点:
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下?
3个回答

6

5

我曾经遇到过这个问题,最终选择了使用cronjob来解决:

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

每小时它将从此目录(及其所有子目录)中删除所有tar、ear、war和jar文件。可能有更多面向Hudson的方法来实现这个功能...


1

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


大家记得在保存后执行任务。 - Lucas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接