2009-12-30 27 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