Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Technologická středa Continuous Integration with Maven and Hudson Vlastimil Menčík 11.9.2009.

Podobné prezentace


Prezentace na téma: "Technologická středa Continuous Integration with Maven and Hudson Vlastimil Menčík 11.9.2009."— Transkript prezentace:

1 Technologická středa Continuous Integration with Maven and Hudson Vlastimil Menčík 11.9.2009

2 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Obsah 1.Motivace 2.Hudson 3.První pokus o CI 4.Maven 5.Druhý pokus o CI 6.Integrační testy

3 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Motivace  Všeobecně známá:  Automatizace buildů, testování a deploymentu  Včasné odhalení chyb  Ušetření práce developerů, maintainerů i administrátorů  Není potřeba shánět „někoho, kdo to buildne“  Úspora času a nervů

4 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Hudson  Open source CI nástroj  Běží v servletovém containeru  Podporuje SCM nástroje (CVS, SVN a další)  Umí spouštět ant, maven, případně custom shell skripty  Buildy lze plánovat časově, sledovat změny v SCM, případně spouštět řetězově

5 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Hudson + ant  Necháme Hudson buildovat naše projekty tak, jak jsou  Jenom „trochu“ upravíme antovský buildfile  Problém: už jsme mimo prostředí Eclipse  Musíme kompilovat  Musíme definovat kompilační classpath  Musíme tedy udržovat classpath pro Eclipse i pro ant Uděláme další plugin do antu, který do bude dělat za nás?

6 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Ukázka – JNP_JASPER_REPORTS

7 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Hudson + ant  Hlavním problémem jsou závislosti Udržovat classpath pro Eclipse i pro Hudson  Hudson musí mít přístup do installu Pokud nechceme commitovat jary do SCM  Dohromady ale získáme jenom automatizaci buildu  Všechno další (řešení závislostí, spouštění testů, deployment) si musíme vyřešit sami v antu  Tato cesta znamená hodně „programování“ v antu

8 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Apache Maven  Buildovací nástroj  Koncepce se ale od Antu výrazně liší  Convention over configuration  Project Object Model (POM) Popis projektu – ne procedurální zápis buildu Obsahuje závislosti na dalších projektech  Životní cykly buildu Fáze Pluginy

9 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Maven - repositáře  Centrální - http://repo1.maven.org/maven2/http://repo1.maven.org/maven2/  Lokální – slouží hlavně jako cache  Lze přidávat další V POMu V nastaveních instalace Mavenu  Typicky firemní repositář a repositáře třetích stran  Podpora proxování

10 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Maven - pluginy  Pugin má několik cílů (goals) MOJO = implementace cíle pluginu  Cíle bývají automaticky spojené s určitou fází buildu Např. surefire:test s fází test  Pluginů je hodně http://maven.apache.org/plugins/index.html http://mojo.codehaus.org/plugins.html Jedním z nich je antrun – lze tedy volat ant  Můžeme si napsat vlastní

11 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Maven – integrace do IDE  Plugin do Eclipse – m2eclipse  Grafický editor POMu  Spouštění buildů  Vyváření Maven projektů  Přidání závislostí do Eclipse classpath projektu

12 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Ukázka – mavenized JNP_JASPER_REPORTS

13 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Hudson + Maven  Externí závislosti a classpath vyřešil přímo Maven  Maven má i spoustu dalších výhod  Tranzitivní závislosti ušetří spoustu času Na čem všem závisí Hibernate?  Méně „programování“ v Antu  Je potřeba řešit jenom „speciální“ případy  „non-mavenized“ závislosti si musíme sami přidat do repositáře

14 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Maven a testy  Jednotkové testy Vestavěný surefire-plugin automaticky ve fázi „test“  Integrační testy failsafe-plugin Související fáze: pre-integration-test, integration-test, post- integration-test, verify Nasazení na integrační prostředí, běh testů, úklid, vyhodnocení testů (a případný fail buildu) Integrační prostředí vždy uklizeno (torn down)  Výsledky testů se ukládají a lze je prohlížet v Hudsonu nebo někam publikovat

15 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Ukázka – JNP_4_TICKETPRO

16 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Převod jNP projektu na Maven  Nemáme ETN Maven repository Přidat všechny ETN knihovny do lokálního repositáře  Enhancování assetů Není plugin pro naší implementaci JDO Volání antu  Native2Ascii a licence pro Xstandard vyřešeny pomocí existujících pluginů  Nasazování na integrační prostředí Problém při použití Tomcat Manageru (PermGen space)

17 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Pozorování  Kombinace Hudson + Ant sama o sobě tolik nepřinese a i dlouhodobě je dost pracná  Hudson + Maven vyžaduje značnou počáteční investici, přináší však mnoho výhod, které do budoucna můžou ušetřit velké množství práce  Řadu výhod přináší samotný Maven i bez CI  Bez jednotkových a integračních testů ztrácí CI efekt

18 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Odkazy  http://maven.apache.org/ http://maven.apache.org/  https://hudson.dev.java.net/ https://hudson.dev.java.net/  http://www.mvnrepository.com/ (vyhledávač artefaktů) http://www.mvnrepository.com/  http://m2eclipse.sonatype.org/ http://m2eclipse.sonatype.org/

19 © 2009 ET NETERA a.s. Continuous Integration 11.9.2009 Závěr Prostor k diskuzi


Stáhnout ppt "Technologická středa Continuous Integration with Maven and Hudson Vlastimil Menčík 11.9.2009."

Podobné prezentace


Reklamy Google