Сегашното ми впечатление е, че е невъзможно да се направи CI за многомодулен проект на Maven 3 добре с помощта на Хъдсън (или Дженкинс).
Ситуацията изглежда е такава, че имате 2 реалистични опции за изграждане на многомодулен проект Maven 3 с Hudson:
Проект със свободен стил може също да изгражда проекти на Maven и с инкременталната/рекурсивна опция очевидно трябва да може да се справи с изграждането само на необходимите поддървета на пълното дърво на проекта.
Наследство, силно остаряло, с много предупреждения, наследена компилация на Maven2/3.
При първата опция има значителен недостатък, че целият ви проект изглежда като едно голямо петно в Hudson, няма видимост на отделните подпроекти и няма опция за изграждане на отделни подпроекти и зависими от тях.
С втората опция трябва основно да преглътнете много малко вяра, предизвикващи предупреждения за наследство и „не използвайте“, за да разберете, че да, това ще изгради вашия многомодулен проект, но функционалността за задействане на компилации на подпроекти е напълно нарушена и там няма намерение да поправя това.
Единствената алтернатива, която мога да разбера, е да се върна към Maven 2 за изграждането на сървъра, в който случай изглежда, че наследеният плъгин работи и дори отделните компилации на подпроекти могат да бъдат задействани. Но тогава съм заседнал на Maven 2.
Смятам, че изискванията ми са доста консервативни, но съм напълно възпрепятстван от липсата на поддръжка на Maven в Hudson/Jenkins. Ето какво бих очаквал:
- способност за разпознаване на многомодулни проекти и изграждането им с помощта на Maven 3
- възможност за "инкрементални" компилации на такъв многомодулен проект (т.е. само променени модули и зависими от тях)
- възможност да видите текущото състояние на многомодулния проект и кой подмодул е неуспешен/успешен/нестабилен
Въпросният проект Maven се състои от около 84 модула Maven в многомодулна конфигурация с общ родител и разделяне на различни подсистеми. Ние използваме Hudson 3.1.0.
Имам ли някакъв шанс да постигна това?