Моя команда использует ветки функций для реализации новых функций и постоянно развертывает сборки моментальных снимков в удаленном репо для использования нашими пользователями. Таким образом, "развертывание" действительно означает только "распространение в удаленном репозитории Maven". В настоящее время мы используем только непрерывные интеграционные сборки для ведущей ветки, а не ветвей функций по следующей причине: мы используем Maven для создания наших проектов и распространения JavaDoc и источников вместе с JAR.
Мой план состоял в том, чтобы добавить классификатор в каждую ветвь каждой ветки и ожидать, что он будет использоваться при создании и развертывании артефактов, таких как:
- Отрасль: мастер
- Классификатор: none
-
Артефакты:
foo-${version}
.jar,foo-${version}-sources
.jar,foo-${version}-javadoc.jar
-
Отрасль: feature-X
- Классификатор: myfeature
- Артефакты:
foo-${version}-feature.jar
,foo-${version}-sources-feature.jar
,foo-${version}-javadoc-feature.jar
На самом деле меня не интересует точное название артефакта, мне просто нужны отдельные основные, исходные и артефакты JavaDoc для ветки функции. Оказывается, ни плагин JavaDoc, ни исходный плагин не учитывают конфигурацию классификатора и таким образом эффективно перезаписывают артефакты, созданные для моей основной сборки.
Я действительно не хочу менять artifactId, хотя это, вероятно, решит проблему. Как вы относитесь к ветвям признаков и непрерывной интеграции с Maven?