2009-10-02 80 views
3

如何設置持續集成服務器來構建多個相關項目?持續集成工具中的多個相關項目

我想爲託管在mercurial存儲庫上的項目設置持續集成過程。但是,該項目對另一個託管在另一個mercurial存儲庫(均在Google上託管)的項目具有編譯時間依賴性。

使用Hudson,我如何爲兩個項目設置CI作業(同時將一個二進制位置傳遞給另一個項目構建腳本)?其他工具是否更好地處理它?

這兩個項目都是帶有Ant構建腳本的Java項目。

回答

4

Hudson應該能夠處理這個問題,因爲Hudson支持兩個相關的構建(換句話說,一個構建可以通過完成另一個構建)和Mercurial

this thread,有可能:

配置哈德森發佈構建工件,然後HTTP獲得這些文物的相關的構建。你希望你的依賴版本的位置獨立於第一個版本的位置。

該信息的作者給出了一些Hudson Unleashed...更多的細節,這可能也有幫助。

0

在巡航控制中你有整合隊列。您只需按照所需的順序將兩個項目放在同一個隊列中,然後它們將依次構建。

5

我建議尋找Maven(或者如果你不想移動到Maven,Ivy,它與Ant集成) - 它不是真正的CI服務器的工作來處理工件依賴關係,就像你正在談論的那樣。這就是說,如果你在Hudson服務器上有兩個作業,比如說job_a和job_b,你可以配置job_a來存檔它的工件(包括job_b中需要的jar文件),然後啓動job_b當它完成時。然後,在job_b中,可以使用ant的get任務從http://hudsonserver/job/job_a/lastStableBuild/artifact/jarfile.jar(etc)下載jar文件。因爲它是job_a的最後一個穩定版本的符號鏈接,因此您不必擔心job_b正在運行,也無需查找所需的jar文件。