我想知道是否有可能同時在幾個功能分支上的maven項目上工作,並避免不斷覆蓋Nexus中其他功能分支產生的工件。基於功能的開發Sonatype Nexus OSS
我正在使用gitflow工作流開發多個組件(30+)的跨國項目中工作。每個組件都有一個git存儲庫,因此gitflow工作流將應用於每個組件。所以每個組件都有一個開發和幾個功能分支。一般來說,每個部件至少產生一個由其GAV識別的人造體。
比方說,我們有組分A(與功能分支功能/ A-foo和功能/ A-吧)和B(與特性分支功能/ B-富)
Component A:
A:develop
A:feature/A-foo
A:feature/A-bar
Component B:
B:develop
B:feature/B-foo
答: feature/A-foo和B:feature/B-foo在同一主題上工作,並需要交換快照版本以測試其交互(例如客戶端/服務器功能)。組件A和B只能通過Nexus交換工件(其他組件的源代碼不可訪問)。所以A:feature/A-foo必須部署它的快照構件以使其可用於B:feature/B-foo,反之亦然。但是當後來部署的A:特徵/ A條(其工作在完全不同的主題上)時,由於相同的GAV和更近的時間戳以及B:特徵/ B-條,它在Nexus中「覆蓋」快照構件, foo會在其下一個版本中導入錯誤的工件。
一種解決方案是延伸與功能名稱的GAV(例如富):
some.company.componentA-1.2.3-foo.jar
some.company.componentA-1.2.3-bar.jar
some.company.componentB-3.2.1-foo.jar
這種方式可以避免使A:特徵/ A-FOO被重寫A的構件:特徵/ B因爲他們有不同的GAV。但是這非常容易出錯(在重新合併時重新命名GAV時重新命名;如果有人忘記重命名它,則會混淆構建)。
有沒有更好的解決方案?還是應該禁止在特性分支上部署?
[如何使用Maven連續構建和部署功能分支?](http://stackoverflow.com/questions/11413624/how-to-continuously-build-and-deploy-feature-branches-with- maven) –