2016-09-22 1723 views
4

我有一個多模塊Maven項目:GitLab CI如何觸發在Maven的多模塊項目子模塊流水線

root 
    SubmoduleA 
     src 
     pom.xml  
    SubmoduleB 
     src 
     pom.xml 
    pom.xml 
    .gitlab-ci.yml 

有什麼辦法,我只能在SubmoduleA觸發CI管道,當有人在檢查隻影響子模塊A的代碼? 例如,有人在子模塊A中進行了更改。一旦他們提交併推送,我想僅在子模塊A上自動運行build-> test-> deploy,因爲SubmoduleB沒有更改。

有沒有辦法指定觸發器和作業中的特定子模塊或子項目的回購?

回答

2

我相信你需要創建該子模塊gitlab項目和子模塊需要自己.gitlab-ci.yml。那時它可以在gitlab-ci-runner內建立。

我不是在Maven的(或Java)的專家,但我想,在較大的項目的子模塊可能成爲存儲在您自己的內部資料庫單獨的二進制建庫。你們都會在你的構建中生產和使用罐子,並且你使用Maven自己來爲它們服務。然後Maven可以下載你使用其內置的依賴解析和包獲取功能的,那也許你會成爲一個大的Java項目構建方案更好與比用git子模塊。

我現在在.Net世界中使用自定義的nuget feed執行此操作,結果與您正在做的類似,因爲構建發生並且構建服務器的資源不會被源包含和重新編譯浪費這些模塊第二次。