2009-03-02 73 views
3

我試圖使用CruiseControl 2.7.3(最初)來構建SVN存儲庫中的Java項目。使用SVN與CruiseControl?

我的巡航配置使用svn plugin作爲修改集。當檢測到修改時,將使用Ant計劃構建。該Ant構建文件然後使用svnant Ant Task完成項目的完整結帳。有一段時間,我們已經設置了checkout「HEAD」,但是我們已經有過這樣的情況,即構建不會因爲檢查或兩個檢查而觸發,因爲檢查發生在修改集檢查之後,但在螞蟻調用之前svn結帳。因此,我們試圖更改ant構建文件以使用修改檢查檢索的修訂號。

CruiseControl Configuration Reference頁面聲稱設置屬性svnrevision並將其傳遞給構建器,就像標籤屬性由labelincrementers所示。當我按force build按鈕時,它似乎沒有設置。

有什麼我需要做的,讓這個去嗎?

+0

究竟哪個日誌? cruisecontrol.log,項目日誌或生成日誌? – Steen 2009-03-02 20:20:41

+0

哦,也許在你的問題中添加標籤'顛覆'會讓你的眼睛看起來更多一些? – Steen 2009-03-02 20:24:28

+0

我會將其添加到問題中。 – 2009-03-02 20:43:34

回答

1

看看SVN源代碼控制的代碼看起來應該將svnrevision傳遞給構建器,從而一直傳遞給您的Ant調用。您是否嘗試過使用Ant腳本中的屬性?

針對在評論的問題:

這是因爲在力形成的情況下,沒有修改,所以沒有修改版本號。在這種情況下,svnlabelincrementer會通過最新的修訂版本號,以便在當地使用,這也是最新版本。

0

巡航控制ant調用與被構造的(svn)標籤無關。 svn標籤用於註釋構建名稱,而build.log實際上只是螞蟻在通過巡航控制時的輸出。

如果你想有寫入Ant構建輸出的版本號,基本上有兩種方式:

一種方法是有某種方式SVN螞蟻互動。 Svn in ant只能通過來自底格里斯河的contrib ant task獲得,因此將它放入您的ant文件並非易事。但是在你的版本中,你可以做一個svn info並獲取版本號作爲螞蟻屬性在你的處置。

另一種方法是使用svnlabelincrementer將修訂號分配給標籤,並使用從巡航控件傳遞到構建腳本的buildproperties將其傳遞到ant腳本。正如Jay在評論中提到的那樣,標籤只包含最後一次成功的構建版本,這不是他想要的。在this blog上提出了一個修復方案,但是在ant構建文件中進行這項工作似乎更合適。

0

您可以使用quietperiod設置嗎?提交後,CruiseControl可以在開始構建之前等待一段時間(比如30秒)。

它不會觸發每個提交的單個構建。相反,在同一時間提交將啓動一個單一的構建。