У меня есть несколько проектов, которые разрабатываются и выпускаются в разных отраслях, а именно development и release . Процесс работает довольно хорошо, но, к сожалению, он имеет некоторые недостатки, и мне было интересно, есть ли лучшая схема управления версиями для применения в моей ситуации.
Основная разработка происходит в ветви разработки (то есть Subversion trunk , но это не имеет большого значения), где команда разработчиков фиксирует свои изменения. После создания и упаковки артефактов Jenkins развертывает их на сервере приложений maven для репозитория и интеграции разработки. Это DEVELOPMENT-SNAPSHOT и в основном это просто ветвь функций , содержащая все разработанные функции в одной общей ветке:
<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>D.16-SNAPSHOT</version>
Когда одно конкретное изменение бизнеса выполняется и запрашивается командой QA, это единственное изменение затем объединяется с веткой выпуска ( ветки / релиз ). Jenkins развертывает полученный артефакт на сервере приложений QA:
<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>R.16-SNAPSHOT</version>
Затем есть релиз, который происходит через maven-release-plugin в версии программного обеспечения для ветки релиза (которая создает тег / ветвь обслуживания для быстрого исправления ошибок). (R.16-SNAPSHOT => R.16)
В настоящее время ветки разработки и выпуска имеют версии D.16-SNAPSHOT и R.16-SNAPSHOT соответственно. Это позволяет разделять артефакты в репозитории Maven, но создает проблему с различными механизмами Maven, которые полагаются на стандартный стиль управления версиями Maven. И это также нарушает управление версиями OSGI.
Теперь, как бы вы назвали и вернули артефакты maven в такой схеме? Есть ли способ лучше? Может быть, я мог бы внести некоторые изменения в структуры maven, кроме простого изменения схем управления версиями и именования? Но мне нужно разделить ветки SCM разработки и QA (выпуска).
Будет ли разумной альтернативой классификатор maven по «развитию» / «производству»?
<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>16-SNAPSHOT</version>
<classifier>D</classifier>