我使用的是Jenkins 1.462,maven版本是3.0.4。 在詹金斯我啓用複選框「增量編譯 - 只有建立更改的模塊」在Jenkins中增量構建
我想弄清楚兩個問題:
無論增量生成足夠? 例如,How do I trigger a Jenkins build of a single module in a multi-module Maven build from Subversion?例如聲明它不工作在100% 這裏在第19頁http://www.slideshare.net/andrewbayer/7-habits-of-highly-effective-jenkins-users表明增量構建是對完整構建而不是替代的補充。
是否增量式構建 - 僅構建更改模塊實際上按預期工作? 我的意思是?如果我有模塊A,B,X,C,D,X使用A和B,C使用X,D使用C,我在X模塊中進行更改。比我想要重新編譯模塊X(itslef),C(直接使用X)和D(即傳遞閉包; D使用C,使用C)。
注意:這是我爲了啓用增量構建而做的唯一更改。
Downvoted作爲建議的解決方案產生非常嚴重的問題:使用「MVN安裝」,在詹金斯將產生意想不到的行爲,如果你有超過1臺構建機器或建造超過1支。一般來說,構建不應該依賴構建機器的狀態,這就是爲什麼「mvn install」是一個非常危險的想法。如果您有相互依存關係,則使用存儲庫管理器,並根據需要更新依賴關係版本(不啓用「覆蓋版本」,否則會導致重複性下降)。 – marcv81
嗨marcv81,mvn安裝不一定依賴於生成機器的狀態。如果您正在使用Maven發佈,那麼您還應該使用中央回購來推送和拉動您的工件。無論如何,如果你願意,你可以替換任何其他目標的安裝,問題是關於加速構建,而不是關於Maven有幾個選項的依賴管理。 –
嗨Adrian,mvn安裝會默認更改生成機器的狀態,因爲它會在本地存儲庫中安裝工件。這會影響下一個依賴於當前版本的構建的結果。問題是關於性能,但答案打破了重複性,因此我的downvote /評論。我提到使用工件庫;另外一個正確實施的好習慣是爲每個構建啓動一個新的虛擬機。在每次構建之前,這個可憐的人的版本是rm -rf〜/ .m2/repository。 – marcv81