2011-04-20 43 views
1

我有兩個項目在Hudson和Maven 2中組裝,例如:Shared.jar和Server.jar。Hudson:構建鏈接和兩個項目

服務器依賴於Shared。

我要實現以下生成方案:

  1. 當一些致力於 服務器 - 只有服務器被重建。
  2. 當有事致力 共享 - 第一個共享建立,然後 服務器。
  3. 當有東西提交到 服務器和共享(在一個提交作爲 他們在一個SVN回購) - 第一個 共建,然後服務器。

很明顯的行爲,但我什麼,我得到的是我在第三的情況下建立服務器的兩倍。有沒有什麼機會解決這個問題?我使用哈德森1.392

在SVN項目看起來如下:

+ SVN repo root 
| 
+ Server 
| ... 
| pom.xml 
+ Shared 
    ... 
    pom.xml 
+0

你能給你的svn的結構更加位信息?服務器和共享在單獨的子目錄中嗎? – artbristol 2011-04-20 11:19:56

+0

一個回購,兩個目錄:用於服務器和共享 – glaz666 2011-04-20 11:24:34

回答

1

我沒有看到一個簡單的方法來做到這一點,但我認爲這是一個不太艱難的道路。

創建一個新的Job(在此示例中稱爲TRIGGER),該Job有一個監視Server和Shared的構建觸發器。當有事情發生時(對服務器或共享),有一個構建任務(在我的情況下,可能是一個Windows蝙蝠或PowerShell腳本),將檢查什麼是承諾,並決定需要建立什麼 - 服務器或共享。基本上,你的三個案例邏輯將在這裏處理。

根據結果,讓構建任務創建/更新工作區中的兩個文件 - 調用其中一個BUILDSHARED.TXT和另一個BUILDSERVER.TXT(例如)。當你想要重建該組件時,你需要改變文件的內容(比如將$ BUILD_TAG轉儲到其中)。注意:如果要重建「BOTH服務器」和「共享」,則需要指示共享作業應重建。現在,讓作業存檔這兩個文件。

修改您的共享作業以包含URL Change Trigger插件。設置生成觸發器以監視TRIGGER作業的BUILDSHARED.TXT文件的永久鏈接的URL。當監視的文件發生更改時,將會觸發新的共享版本。

同時修改您的共享作業,以便在成功完成後啓動服務器作業的下游構建。您可以使用「構建其他項目」選項或使用類似我個人最喜歡的內容來實現此目的,Parameterized Trigger Plugin

最後,修改您的服務器作業以使用URL Change Trigger插件。將其設置爲監視TRIGGER作業的BUILDSERVER.TXT文件的永久鏈接的URL。現在,如果創建了服務器提交或共享作業完成,則會觸發服務器作業。

我想這你想要做什麼......

+0

那麼,這絕對是一種方法來做到這一點......但是如果我沒有找到針對我的問題的任何內置解決方案,那麼我最好堅持重新構建服務器和共享,從而更新任何存儲庫,儘管避免更好。 – glaz666 2011-04-21 07:36:11