2012-07-31 83 views
0

我正在考慮在工作中實施一個非常大的連續構建(數百個Visual Studio解決方案,數千個項目)。它包括.NET,C++和VB6代碼。我們有一些基於TeamCity的解決方案,但依賴關係並不正確。在源代碼和TeamCity(或其他工具)之間保持依賴關係的同步在這個規模上聽起來完全不現實。 有沒有人知道是否有一個工具/插件在TeamCity中自動檢測解決方案的依賴關係?與其他持續集成工具如何?即使它只適用於.NET項目,這仍然是一個很大的幫助。TeamCity(或其他連續構建)中的自動依賴關係?

我發現了一個小的,命令行工具(gittup.org/tup),指出它通過監視文件訪問推斷依賴。將這種技術應用到更大規模的構建工具似乎是可能的,但我不知道它是否已經完成。或者也許還有其他解決方案。

+0

另一種方法是編寫一個自定義工具,提取從您的項目文件的依賴性信息,然後使用的TeamCity的REST API更新構建配置:http://confluence.jetbrains.net/display/TW/REST+API+Plugin – 2012-12-11 00:17:40

回答

0

檢測很難。

我的公司的AnthillPro工具由擁有數百個相互依存組件並需要管理這些構建的團隊使用,並且巧妙地只重建受特定更改影響的組件。

我見過的一種方法確實是成功的,就是將依賴關係定義推送給開發人員。有些團隊要求他們管理一個文件,列出他們的解決方案之間的依賴關係 - 「還有哪些東西需要下載並放到lib/bin目錄中供您的解決方案編譯」。這與許多Java開發團隊使用Maven所做的相似。我希望跨開發團隊分發依賴性定義,而不是嘗試檢測。

在這一點上,構建管理工具的作用是分析在構建時該文件,並更新其幕後的依賴關係圖的模型。該信息既可用於工件檢索,也可用於觸發相關的構建。

+0

我來看看AnthillPro。我試圖避免有兩個依賴關係的定義,但我想我們會看看這是否可能。我發現了一個小的命令行工具(http://gittup.org/tup/),它說它通過監視文件訪問來推斷依賴關係。將這種技術應用到更大規模的構建工具似乎是可能的,但我不知道它是否已經完成。 – Vimes 2012-08-01 20:29:15

+0

推斷這些文件級別的依賴關係是巨型構建的一部分是可能的。這就是ClearCase的ClearMake的工作原理。儘管如此,我認爲在這種情況下,將事情分解成明確的解決方案會使您失去很多好處。也許你的工具的工作方式不同。 – EricMinick 2012-08-02 13:53:23

+0

我還沒有嘗試過TUP,因爲我認爲它沒有像分佈式構建,電子郵件通知,掛起構建檢測,漂亮的Web界面,用戶和權限等等。它被設計成一個小工具。但它看起來會處理通過MSBuild構建的VisualBuild解決方案,除非我錯過了一些東西。如果有人將類似於Tup的依賴方法放入大規模的構建工具中,那將會很棒。這在分佈式構建中會有點工作,但我認爲這是可能的。 – Vimes 2012-08-02 19:28:27