Вы должны продолжать выполнять автоматическое ночное развертывание из Hudson, но большая проблема, связанная с обработкой номеров версий и выпусков, неразрывно связана с любой системой управления исходным кодом. Вы не упомянули, какую систему управления исходным кодом вы используете, но я могу объяснить, как это сделать с помощью Subversion.
Во-первых, по указанной вами причине вы должны никогда изменить идентификатор версии вашего исходного кода в транке на что-либо, кроме версии моментального снимка (например, с -SNAPSHOT
в конце). В противном случае вы будете перезаписывать при повторном развертывании. Рекомендуется (временно) изменить идентификаторы версий в pom (ах) транка на версию, которую вы хотите освободить, пометить транк, собрать из тега, затем развернуть сборку, созданную вами из тега, а затем немедленно увеличить идентификатор версии снимка в соединительной линии и, наконец, зафиксируйте соединительную линию с более новым, более высоким номером версии снимка.
Если это кажется хлопотным, то вам следует знать, что Плагин Maven Release сделает все это автоматически, полагаясь на Плагин Maven SCM для выполнения работы с ваша система контроля версий.
Хотя я полюбил использовать плагин Maven Release из Гудзона, это очень обидно. Для того, чтобы он функционировал должным образом, вот несколько советов:
- Реальные релизы должны выполняться Хадсоном, но разработчики могут
конечно же делай их из своих
разработка машин, чтобы проверить
процесс выпуска. Просто обязательно
удалить любые теги в Subversion и любые
выпустить артефакты в Nexus
впоследствии.
- Он использует maven-scm-plugin, который, в свою очередь, требует внешнего
установленная версия Subversion будет
на текущем пути. Таким образом версия
Subversion также должна быть уже
кэшировал учетные данные, необходимые для
написать в источник подрывной деятельности
хранилище.
- Если процесс выпуска прерывается на полпути, вы можете сделать
выпуск: откат, чтобы исправить помпы, но
это не устранит поддельные теги
которые уже были привержены
подрывная деятельность. Эти вам придется
удалить вручную, после выполнения SVN
обновить.
- Релиз: цель отката иногда не возвращает pom.xml
версия обратно в SNAPSHOT. Если
что-то идет не так, проверьте POM
версия для обеспечения использования «SNAPSHOT».
- Релиз: цель отката иногда не возвращает URL-адреса SCM
вернуться в исходное местоположение. Если
что-то идет не так, проверьте, что эти
указать на «ствол» или исходный
филиал.
- Поскольку мы используем Subversion, наша конфигурация maven-release-plugin позволяет
опция {{suppressCommitBeforeTag}}
который устраняет дополнительный коммит, который
другой будет модифицировать ствол pom.xml
файлы перед их изменением.
Также обратите внимание, что существует интеграция Maven Release Plugin с Hudson , но не требуется вызывать цели плагина релиза Maven из Hudson, это просто упрощает, однако у меня был не повезло заставить этот плагин работать.
Итак, подведем итог:
- Развертывание только из транка, используя
ИЛЛЮСТРАЦИИ
- Используйте релиз Maven
плагин для развертывания из тега во время
релиз.
Надеюсь, это поможет.