Я разрабатываю несколько проектов на своем ноутбуке и периодически нажимаю на github.Я установил частный сервер hudson в облаке, который опрашивает git-репозитории на наличие обновлений и, таким образом, выполняет сборки - пока что все хорошо.
К сожалению, когда я выполняю 'mvn release: prepare' на моемНоутбук, чтобы выполнить релиз (скажем, «1.5»), две происходящие фиксации (изменение 1.5-SNAPSHOT на 1.5, затем 1.5 на 1.6-SNAPSHOT) помещаются в мое git-репо, и Хадсон, очевидно, создает самую последнюю, т.е.1.6-SNAPSHOT - и полностью игнорирует релиз 1.5.
Это не имеет большого значения, но проекты зависят друг от друга, и я хотел бы объявить версии без снимков в моих poms.Однако, когда проект B зависит от версии 1.5 проекта A, его нигде не найти в локальном репозитории maven для пользователя hudson в окне Hudson - потому что он никогда не был собран - и поэтому сборка проекта B завершается неудачей.
Было бы замечательно, если бы я мог сделать Хадсона немного умнее, и когда он увидит, как пролетает версия релиза maven, форсирует сборку и установку этой конкретной версии, прежде чем приступить к сборке более поздней фиксации снимка.
Я просматривал плагины Hudson и, в частности, плагин M2 Release:
http://wiki.hudson -ci.org // display / HUDSON / M2 + Release +Плагин
- однако этот плагин, кажется, больше ориентирован на ручной выбор сборки, которую вы хотите продвинуть до более официального репозитория Maven, чем на то, чтобы заставить Хадсона автоматически собирать и устанавливать каждую версию сборки.
Обновление : некоторые из моих базовых требований заставили меня переосмыслить то, чего я хочу достичьПриносим свои извинения за то, что не выразили их раньше:
- Большинство проектов имеют открытый исходный код или в конечном итоге должны быть открыты, и я хотел бы, чтобы кто-нибудь смог
git clone
любой отдельный проект, оформить заказтег выпуска и выполните mvn install
, не требуя никаких других репозиториев для зависимостей, кроме maven central. - Чтобы получить согласованные результаты (на моем ноутбуке, сервере hudson и проверках других людей), это очевидноуказывает на предпочтение объявления зависимостей без снимков в моих poms (по крайней мере, для версий выпуска).
- Это привело меня к пути попытки заставить Хадсона «установить mvn» артефакты выпуска, когда они просвистывали мимо, так что позже проект сборки B в Гудзоне не потерпит неудачу, когда не сможет найти версию выпуска проекта A (откуда и возник этот вопрос)
Дополнительно:
- Я пользуюсь замечательным oss хостингом sonotype, который требует подписи GPG - и я не хочу, чтобы мой ключ GPG хранился на любом харdware, я не могу держать в руке :) - поэтому вставлять его на сервер Hudson в облаке не вариант.
- Мысленно, когда сервер Hudson делает выпуски, это немного чуждо мне - яна самом деле просто хочу это для КИ.