У меня сложилось впечатление, что выполнить CI для многомодульного проекта Maven 3 ну с помощью Hudson (или Jenkins) невозможно.
Ситуация, похоже, такова, что у вас есть 2 реалистичных варианта создания многомодульного проекта Maven 3 с Hudson:
Фристайл-проект также может создавать проекты Maven, и с опцией инкрементного / рекурсивного он, очевидно, должен иметь возможность строить только необходимые поддеревья полного дерева проекта.
Устаревшая, сильно устаревшая, с множеством предупреждений, устаревшая сборка Maven2 / 3.
У первого варианта есть существенный недостаток, заключающийся в том, что ваш полный проект выглядит как один большой объект в Гудзоне, нет видимости отдельных подпроектов и нет возможности для создания отдельных подпроектов и их зависимостей.
Со вторым вариантом вы должны в основном проглотить очень слабую веру, вызывающую предупреждения о наследии и «не использовать», чтобы узнать, что да, он построит ваш многомодульный проект, но функциональность запуска сборок подпроектов полностью нарушена и есть не собирается это исправлять.
Единственная альтернатива, которую я могу придумать, - это вернуться к Maven 2 для сборки на сервере, и в этом случае устаревший плагин, кажется, работает, и даже отдельные сборки подпроекта могут быть запущены. Но потом я застрял на Maven 2.
Я считаю, что мои требования довольно консервативны, но я полностью заблокирован отсутствием поддержки Maven в Hudson / Jenkins. Вот чего я ожидал:
- способность распознавать многомодульные проекты и создавать их с помощью Maven 3
- возможность иметь "инкрементальные" сборки такого многомодульного проекта (т.е. только измененные модули и их зависимости)
- возможность видеть текущий статус многомодульного проекта и какой субмодуль не удался / успешно / нестабилен
Рассматриваемый проект Maven состоит из около 84 модулей Maven в многомодульной конфигурации с общим родителем и разделен на разные подсистемы. Мы используем Hudson 3.1.0.
Есть ли у меня шансы на это?