我有一个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使用作业配置,即归档工件和丢弃除最后一个成功/稳定工件之外的所有工件以节省磁盘空间。但实际上这确实如下:
jobs/PROJECT_NAME/builds/2009-12-29_17-23-39/archive/PROJECT_NAME/web/target/PROJECT_NAME-web-1.0.war
下为最后两次构建存储了一个附加副本。所以它实际上会增加磁盘空间消耗。我的构建只针对父 pom.xml 执行clean install
个目标。
那么如何配置Hudson服务器和/或Maven从jobs/PROJECT_NAME/modules
下自动删除构建工件并将它们保留在jobs/PROJECT_NAME/builds
下?
答案 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)