Я использую Jenkins для создания Java-проектов Maven и развертывания их в репозитории Nexus. Я также использую Git, хотя я больше привык к Subversion, поэтому мои знания Git ограничены.
Я бы хотел, чтобы Дженкинс / Мейвен:
- Объединить функциональную ветвь с интеграционной ветвью
- Сборка объединенного кода, запуск модульных тестов
- Если они пройдут, увеличить номер версии Maven
- Передать объединенный код в ветку интеграции origin
- Развертывание артефакта в хранилище Nexus
Я понимаю, что слияние Git может быть достигнуто так: http://twasink.net/2011/09/20/git-feature-branches-and-jenkins-or-how-i-learned-to-stop-worrying-about-broken-builds/
Я также много читал о maven-release-plugin
.
Я не уверен, как именно достичь вышеуказанных результатов. Если я жестко закодирую детали SCM в POM каждого проекта, то maven-release-plugin
не будет действовать только на этом хранилище, а не на локальном хранилище Jenkins?
Если я использую решение о том, чтобы Дженкинс передал переменную окружения в Maven для указания номера версии, то я ожидаю, что в моей IDE возникнут проблемы с разрешением локальной версии.