4

問題: 20個不同的JAVA項目,有很多相互依賴關係。每次在代碼鎖定後出現錯誤修復時,我們都必須根據需要發佈一些工件,具體取決於哪些工件發生了更改。例如,如果工件3有一個解鎖並需要一個錯誤修復,我們將需要釋放(使用Maven發佈插件)項目3,4,5,6,7和10(因爲4,5,6,7和10是依賴於3)。團隊之間協調完成這項任務需要時間。加造每件神器需要20-40分鐘。Maven發佈過程替代

我們希望縮短這一過程。與時間戳文物

  • 促進個體的文物使用詹金斯的工作和標籤SVN版本庫到

    1. 使用快照:我們正在考慮以下的。使用MVN版本
    2. 更新的依賴關係:對於需要依賴每個項目設定命令。

    有沒有人實現類似如上所述的溶液?如果是這樣,你遇到了什麼問題?

    不會重建的文物,讓我們在按鈕的點擊會有所幫助:)

  • 回答

    2

    不幸的是你,如果你改變重建你的神器釋放15-20文物任何其他建議您pom文件。否則,您的VCS中的狀態並不代表您正在使用的狀態。

    讓我們做出了榜樣。項目A,項目B上的一個其中B dependends:

    項目A:pom.xml的

    <version>1.0-SNAPSHOT</version> 
        Some dependencies etc. 
    

    項目B:pom.xml的

    <version>1.0-SNAPSHOT</version> 
    
        Some dependencies etc. 
        <dependency> 
        <groupId>project.a</groupId> 
        <artifactId>A</artifactId> 
        <version>1.0-SNAPSHOT</version> 
        </dependency> 
    

    現在你建立項目A和B.你的倉庫中的狀態代表着狀態/依賴於SNAPSHOT的pom文件的狀態。

    現在您將更改項目A以使其「釋放」,但您不重建您的工件。以下是你的版本控制,可能是你做了一個標籤。

    項目A:pom.xml的

    <version>1.0</version> 
        Some dependencies etc. 
    

    其次你做同樣的項目B: 項目B:pom.xml的

    <version>1.0</version> 
    
        Some dependencies etc. 
        <dependency> 
        <groupId>project.a</groupId> 
        <artifactId>A</artifactId> 
        <version>1.0</version> 
        </dependency> 
    

    但是你也不重建aritfact。結果是您的存儲庫確實包含代表SNAPSHOT狀態的工件,但是您的版本控制表示不同的東西。這只是問題的一個非常簡單的例子。如果你有更多的項目等,事情會變得更糟。

    此外,我會recosinder考慮改變項目結構,原因根據你寫的依賴關係,它看起來像項目應該一起發佈,所以它可能是一個好主意,創建一個多模塊構建他們。

    此外,重建可以通過在Jenkins中使用適當的作業來完成,它可以處理依賴性,或者您可以考慮使用build pipeline plugin來處理這樣的事情。

    但我還有一個疑問:爲什麼你的構建需要這麼長時間?你可以調查他們爲什麼要花這麼長時間,並減少釋放時間。

    +0

    非常感謝您的回覆。我將盡快詳細闡述這個問題和我們提出的解決方案。我想我沒有清楚地解釋這個問題。但是你是正確的,我們將需要重建神器。我會盡快更新你的。再次感謝。 – user971652