Мне интересно, возможно ли работать над проектом maven на нескольких ветвях функций одновременно и избегать постоянной перезаписи артефактов, созданных другими ветвями функций в Nexus.Функциональная разработка с Sonatype Nexus OSS
Я работаю в многонациональном проекте, который использует рабочий процесс gitflow для разработки нескольких компонентов (30+). Для каждого компонента существует репозиторий git, поэтому рабочий процесс gitflow применяется к каждому компоненту. Таким образом, каждый компонент имеет развитые и несколько ветвей функций. В общем, каждый компонент создавал по крайней мере один артефакт, идентифицированный его GAV.
Допустим, у нас есть компоненты А (с функцией ветвь имеет/A-Foo и функцию/A-бар) и В (с функцией функции филиала/B-обув)
Component A:
A:develop
A:feature/A-foo
A:feature/A-bar
Component B:
B:develop
B:feature/B-foo
A: функция/A-foo и B: функция/B-foo работают по одной теме и должны обмениваться версиями моментальных снимков, чтобы проверить их взаимодействие (например, клиент/сервер). Компонент A и B могут обменивать артефакты только через Nexus (исходный код другого компонента недоступен). Таким образом, функция A: feature/A-foo должна развернуть свои артефакты моментальных снимков, чтобы сделать ее доступной для функции B: feature/B-foo и наоборот.
НО, когда функция A: feature/A-bar (которая работает по совершенно другой теме) развертывается впоследствии, она «перезаписывает» артефакты моментальных снимков в Nexus из-за того же GAV и более поздней метки времени и функции B: feature/B- foo импортирует неправильные артефакты в следующей сборке.
Одно из решений состоит в расширении ВДС с названием функции (например, Foo):
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 -bar, потому что у них разные GAV. Но это очень подвержено ошибкам (переименование GAV при разветвлении и переименование его при слиянии на разработку снова, если кто-то забывает переименовать его, это испортит сборку).
Есть ли лучшее решение? Или должно быть запрещено развертывать на ветке функций?
Возможный дубликат [Как постоянно создавать и развертывать ветки функций с Maven?] (Http://stackoverflow.com/questions/11413624/how-to-continuously-build-and-deploy-feature-branches-with- maven) –