2010-11-18 42 views
3

我正在使用Rational Team Concert(RTC)IDE和Jazz構建引擎爲Spring Roo應用程序建立持續集成構建過程。設置構建定義時,Jazz Source Control選項卡上的Build Workspace字段允許選擇用戶的存儲庫工作空間或流。Jazz SCM持續集成 - 構建流與工作區?

RTC Continuous Integration Best Practices和其他Jazz構建資源一致指使用與構建用戶關聯的專用存儲庫工作空間,這使我相信這是首選方法。我無法直接找到有關從流中構建的任何信息。我們的項目流包含構建所需的所有工件,並且我已經測試並確認持續集成構建可以從流中工作。我無法想出爲什麼我需要爲此創建和管理特定的工作空間。

我的問題是,我是通過直接從流中建立起來玩火嗎?這種方法有沒有潛在的下游併發症,我不知道?

回答

5

回答我自己的問題,以防萬一另一個SO用戶將來遇到同樣的問題。

經過一番實驗後,我發現直接從流構建的一個缺點是它忽略了「Jazz Source Control」選項卡上的「僅在有可接受更改時才構建」屬性。因此,只能在預定義的時間間隔內完成流的構建 - 無法將構建配置爲僅在新的更改提交到流時纔會發生。

構建需要專門的工作空間來接受來自流的新更改並使用它們來觸發構建請求。

1

這裏還有一個很大的區別。它與構建如何完成有關。讓我強調一下這裏的區別。

如果您從專用的構建存儲庫工作空間構建,那麼您的構建工作空間已經包含了所有代碼的副本。當您提交更改並構建開始時,只需更新已更改的文件(更改集),並將其從存儲庫物理複製到構建存儲庫工作空間。由於大多數更改都很小,因此需要從存儲庫中將代碼庫的0.1%到2%的任何位置進行復制。

如果你從「流」構建,那麼你的構建工作區需要被創建(你必須在某處編譯!)。所以當創建它時,需要更新ENTIRE代碼庫並將其從存儲庫物理複製到構建存儲庫工作空間。這意味着從存儲庫中獲取100%的代碼庫。

每個文件操作都涉及一個調用來發現所需的資源,從託管存儲庫的數據庫中獲取此資源,然後讓Jazz應用程序通過網絡提供此源文件。它會導致數據庫服務器,Web服務器和應用程序服務器上的負載。您下載的內容越多,這些組件所承受的負載就越多。

您可以使用一些方法將Jazz基礎結構上的負載降到最低。使用內容緩存代理(使用簡單的Squid代理服務器)可以提供幫助。

有關您的選項的更多詳細信息以及這些選項的相對優點,請閱讀我的博客文章和關於爵士樂性能問題的白皮書(http://dtoczala.wordpress.com/2013/02/11/jazz-performance-a-guide-to-better-performance/)。那篇文章現在已經快一歲了,但仍然有效。您還可以查看Jazz部署Wiki(https://jazz.net/wiki/bin/view/Deployment/WebHome),並查看有關性能故障排除和性能問題的部分。