Už odteklo hodně vody ve Ponávce, co jsme zavedli kontinuální integraci pomocí Hudsonu a Mavenu. Nastal čas na krátké zhodnocení. Kontinuální integrace je součástí metodik extrémního programování. Ačkoliv neprogramujeme extrémně, má pro nás kontinuální integrace smysl, popišme si krátce jaký.
Jedním z pravidel pro práci s repository je to, že vývojář do verzovacího systému commituje jen takový kód, který je přeložitelný. (Nemusí být ovšem funkční – závisí na konvencích konkrétního projektu). Pravidlo je to pěkné, ale funguje lépe, když existuje nějaký mechanismus, který prověří jeho dodržení. A přesně to Hudson umí – po nepodařeném commitu pošle „hřišníkovi“ nikoliv golema, ale varový email.
Součástí kontinuální integrace je i spuštění testů. Vývojář se tedy nemusí zdržovat spouštěním časově náročnějších testů – výsledky uvidí opět v Hudsonu.
Další funkcí, kterou používáme, je automatické vytvoření buildu. Do pěti minut po commitu je k dispozici nová verze. Projekt manager má tedy přehled o stavu vývoje, aniž by se musel učit vývojové prostředí a aniž by musel rozumět repository a v něm použitým konvencím.
A to nejlepší nakonec. Protože používáme Maven, dokážeme pro projekt vytvořit i informační web. Takže do několika minut po commitu je k dispozici aktuální JavaDoc, výsledky měření kvality kódu (findbugs, checkstyle, pmd), výsledky testů a pokrytí testy atp.
Ač rozchození všech těchto nástrojů nebylo vždy snadné a na adresu Mavenu padlo spousta nelichotivých slov, výsledek stojí za to…

10. Duben 2008 - 14:04
Mohol by ste prosím uviesť konkrétne tu spoustu "nelichotivých slov na adresu Mavenu"?
10. Duben 2008 - 15:10
Nemůžu, ta slova nepatří do slušné společnosti :-) Ale k věci…
Mavenu fandím, ale přijde mi, že nasazení v produkčním prostředí je na hranici použitelnosti. Na druhou stranu po pracném počátečním nastavení nám už řadu měsíců funguje bez problémů.
10. Duben 2008 - 15:20
Moc sa mi do Mavenu nechce. Ale uvažujem pri novom projekte o kompromise. Zostanem pri Ant-e, vyskúšam pridať Ivy na riešenie závislostí a štruktúru+hierarchiu projektov založím podla Maven konvence. Čo si o tom myslíte? Ak bude v budúcnosti vyžadovaný prechod na Maven mohol by byť "bezbolestný"?
10. Duben 2008 - 15:44
Můj názor je, že mavenovský přístup je "nekompromisní" - buď všechno nebo nic. Máte-li nějaký zásadní důvod pro Maven, tak ho použijte už od začátku.