MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Modul do systému Maven DIPLOMOVÁ PRÁCE Ivana Jansová Brno, podzim 2009 Prohlášení Prohlašuji, že tato diplomová práce je mým p ˚uvodnímautorským dílem, které jsem vypra- covala samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování pou- žívala nebo z nich ˇcerpala,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušný zdroj. Vedoucí práce: RNDr. Radek Ošlejšek, Ph.D. ii Podˇekování Ráda bych podˇekovalavšem, kteˇrími pomohli, jmenovitˇepanu RNDr. Radkovi Ošlejškovi, Ph.D. za trpˇelivosta užiteˇcnérady pˇrivedení diplomové práce, dále Ing. Pavlovi Klobá- sovi za cenné podnˇetya pˇripomínkyk programové ˇcásti.Podˇekovánípatˇríi mé rodinˇea pˇrátel˚umMgr. HanˇeBydžovské a Mgr. Danielu Kederovi, kteˇrímne podporovali. Bez jejich pomoci by tato práce nemohla vzniknout. iii Shrnutí Diplomová práce pojednává o systému Maven. Zabývá se jeho funkcemi a možným využi- tím. Na pˇríkladechukazuje používání modul ˚ua jejich konfiguraci. Ve druhé ˇcástise vˇenujeframeworku Apache Wicket. Formou tutoriálu pˇribližujeˇcte- náˇritvorbu webové aplikace ve Wicketu. Obsahuje popis komponent i Wicket model ˚upro získávání dat. Poslední ˇcástukazuje, jak jsem postupovala pˇritvorbˇeobyˇcejnéhoi reportového modulu do Mavenu. Popisuje vznik modulu – Validátoru pro validaci XML soubor ˚u,kaskádových styl ˚u,JavaScriptu a šablon Apache Wicket a pˇreformulovánívýsledk ˚udo formy reportu. iv Klíˇcováslova Maven, plugin, validátor HTML, validátor JavaScript, validátor CSS šablon, validátor šab- lon Apache Wicket v Obsah 1 Úvod .............................................1 2 Maven ............................................3 2.1 POM – Project Object Model .............................4 2.1.1 Ukázka a rozbor ˇcástípom.xml . .5 2.2 Fáze projektu .....................................7 2.3 Funkce a použití ....................................8 2.3.1 Generování stránek . .8 2.3.2 Základní pˇríkazy . .9 2.3.3 Archetypy . 10 2.4 Moduly ......................................... 10 3 Apache Wicket ....................................... 12 3.1 MVC architektura ................................... 12 3.1.1 Model . 13 3.1.2 PropertyModel . 13 3.1.2.1 Property Expression Language . 13 3.1.3 CompoundPropertyModel . 14 3.1.4 ResourceModel . 14 3.1.5 StringResourceModel . 14 3.1.6 LoadableDetachableModel . 14 3.2 Komponenty ...................................... 15 3.2.1 Form . 15 3.2.2 Button . 16 3.2.3 PasswordTextField . 16 3.2.4 RepeatingView . 16 3.2.5 ListView . 16 3.2.6 Panel . 16 3.3 Tvorba vlastních komponent ............................ 16 3.4 Kontrola uživatelského vstupu ........................... 17 3.4.1 Validátory . 17 3.5 Speciální šablonové znaˇcky: ............................. 18 3.6 PˇríkladWicket šablony ................................ 20 3.7 Ostatní Java frameworky ............................... 21 3.7.1 Cocoon . 22 3.7.2 Struts . 22 3.7.3 Stripes . 22 3.7.4 Tapestry . 23 3.7.5 Aranea . 23 3.7.6 Induction . 23 3.7.7 Spring Web MVC Framework . 24 3.7.8 Oracle Application Framework . 24 vi 3.7.9 JavaServer Faces . 25 3.7.10 WebObjects . 25 3.7.11 WebWork . 25 3.7.12 Sofia . 26 4 Modul Validátor ...................................... 28 4.1 Vytvoˇrenístruktury .................................. 28 4.2 Deskriptor popisující Validátor ........................... 28 4.3 První verze Validátoru ................................ 29 4.3.1 MOJO . 30 4.3.2 Pˇrepracovánímodulu na Maven-report Validátor . 31 4.4 Úprava a sbˇervýsledk ˚uValidátoru ......................... 31 4.5 Typy výstupu ..................................... 33 5 Knihovny používané ve Validátoru ........................... 35 5.1 Implementace Validátoru XML a HTML ...................... 36 5.1.1 XML katalog . 36 5.2 Implementace Validátoru JavaScriptu ....................... 36 5.3 Implementace Validátoru CSS ............................ 39 5.3.1 Kontrola importu kaskádových styl ˚u . 40 5.4 Implementace Validátoru šablon Apache Wicket ................. 40 5.4.1 Wicket DTD . 40 5.4.2 Kontrola Wicket konvencí . 41 6 Závˇer ............................................. 42 A Pˇrehleddostupných modul ˚u ............................... 43 B Nastavení globálních parametr ˚uu JSLint pˇrepínaˇc˚ubrowser, rhino a widget .. 47 B.1 browser ......................................... 47 B.2 rhino .......................................... 47 B.3 widget ......................................... 48 C Obsah pˇriloženéhoCD .................................. 49 Literatura . 52 vii Kapitola 1 Úvod V dnešní dobˇeexistuje množství softwaru urˇcenéhopro správu projekt ˚u.Co od nich uživa- tel oˇcekává?Pˇredpokládájednoduché a pˇrívˇetivéovládání, snadné používání, úsporu práce, pˇrehlednost,velký výbˇerfunkcí a ˇradudalších vlastností. Systém Maven pˇrestavujejeden z tˇechtonástroj ˚u.Slovo Maven je židovského p ˚uvodu a znamená souhrn znalostí. Tímto mottem se Maven ˇrídí.Snaží se sjednotit a zjednodušit vedení projekt ˚u.Ze zaˇcátkuse vyplˇnovánípotˇrebnýchinformací m ˚užezdát zdlouhavé. Vy- naložený ˇcasse však uživateli vrátí pˇritvorbˇedalšího projektu, kde je využije. Maven zajistí jednotný vzhled všech projekt ˚u. Maven sám o sobˇeimplementuje jen nˇekolikzákladních funkcí, ostatní pˇrenechávána modulech. Tato strategie zaruˇcujesnadnou rozšiˇritelnostsystému. V dnešní dobˇejiž exis- tuje velké množství modul ˚us nejr ˚uznˇejšímifunkcemi. Uživatel se jejich shánˇenímnemusí zabývat, pouze pˇridádo projektu název a verzi modulu a Maven si jej obstará sám. Systém se postará i o generování informaˇcníchstránek o projektu. Pˇridávánímjednot- livých modul ˚uuživatel získává informace o projektu jako celku i o jeho ˇcástech.Vytvoˇrení statistik, nalezení chyb v kódu, zobrazení výsledk ˚utest ˚u,to jsou jen nˇekterémožnosti, které Maven poskytuje. Tato práce se v první ˇcástisnaží pˇriblížitsystém Maven. Popisuje na pˇríkladechzp ˚usob použití a jednotlivé funkce. Snaží se o rozbor jeho ˇcástí– POM soubor ˚u,archetyp ˚u,mo- dul ˚ua jednotlivých fází projektu. Ctenáˇrzdeˇ m ˚uženaleznout jak teorii výstavby projektu v Mavenu, tak i názorné pˇríkladyz praxe. Druhá ˇcástse zabývá frameworkem Wicket. Pˇredstavujeprincipy tvorby webové apli- kace ve Wicketu a formou tutoriálu ukazuje konkrétní využití. Ve tˇretípodkapitole jsou pˇredstavenyWicket komponenty a popsána jejich tvorba a použití. Ctvrtᡠpodkapitola se vˇenujevalidaci uživatelských vstup ˚ua získávání dat z Model ˚u.Uživateli je ukázána Wicket šablona a vysvˇetlenyjednotlivé elementy. Protože Wicket není jediným Java frameworkem, je zde uveden i pˇrehledostatních framework ˚use struˇcnoucharakteristikou. Tˇretíˇcástje zamˇeˇrenana moduly. Ukazuje ˇctenáˇri,jak jsem postupovala pˇritvorbˇevlast- ního plugin Validátoru, jak jsem urˇcilajeho funkcionalitu a rozvržení do jednotlivých cíl ˚u (Maven goals). Také popisuje jednotlivá rozhraní použitá pˇriprogramování Validátoru. Ctvrtᡠˇcástpopisuje, jak jsem postupovala pˇriprogramování modulu pro validaci Ja- vaScriptu, kaskádových styl ˚u,XML a HTML soubor ˚ua Wicket šablon. Dále ukazuje kon- krétní použité Java knihovny a implementaci kontroly vybraných konvencí pˇripsaní kaská- dových soubor ˚ua Wicket šablon. 1 1. ÚVOD Praktickou ˇcástítéto práce je naprogramování vlastního modulu – Validátoru, který po pˇridánído systému zvaliduje soubory a výstup zobrazí ve formˇeMaven reportu. Validátor poskytne informace o poˇctunalezených chyb. Odkáže uživatele na konkrétní soubor a ˇcíslo ˇrádku,kde se chyba objevila. Uživatel si m ˚užepomocí parametr ˚udefinovat požadovaný pr ˚ubˇehvalidace. 2 Kapitola 2 Maven Maven [1,2] je nástroj pro širokou škálu uživatel ˚u.Pˇrikompilaci Java projektu, spouštˇení test ˚ua distribuci výsledk ˚use bˇežnýuživatel klidnˇem ˚užeobejít bez Mavenu. Jeho chvíle však nastává, když na projektu zaˇcnepracovat více lidí, je potˇrebasledovat výsledky test ˚u, generovat z nich statistiky a zpˇrístupˇnovatje všem ˇclen˚umtýmu. Maven nabízí nástroje jak pro programátory, tak i pro analytiky. Klade si za cíl sjednotit a zjednodušit správu projekt ˚u. Stará se o nastavení, kompilaci a získávání informací potˇrebnýchpro vedení projektu. Kompilace Java projektu je možná i z pˇríkazovéhoˇrádku,ale pro vˇetší rozsah projektu je znaˇcnˇenepˇrehledná.Jako další možnost pro sestavení projektu je využití Ant skriptu. Je ˇcastopoužíván, avšak ˇcímvˇetšírozsah projektu, tím delší skript. Maven nese všechny údaje potˇrebnépro sestavení a kompilaci v projektovém modelu v souboru pom.xml, který z ˚ustávána rozdíl od Antu pomˇernˇestruˇcnýa pˇrehlednýi pro rozsáhlé projekty. Na zaˇcátkupráce s Mavenem se od uživatele rozhodnˇeneˇceká,že si otevˇretextový edi- tor a zaˇcnesepisovat projektový model. Nejjednodušší zaˇcátekpráce s Mavenem je použít pˇreddefinovanýarchetyp, který vytvoˇríprojektovou strukturu i pom.xml sám na základˇe nˇekolikainformací od uživatele: mvn archetype:generate -DgroupId=cz.muni.fi.app -DartifactId=test -DarchetypeArtifactId=maven-archetype-webapp Archetyp má nˇekoliknásledujících ˇcástí: • archetype:generate – vytvoˇríšablonu, • -DgroupId=cz.muni.fi.app – název skupiny pro spoleˇcnéprojekty, • -DartifactId=test – název projektu a souˇcasnˇei název adresáˇre,ve kterém projekt bude, • -DarchetypeArtifactId=maven-archetype-webapp – definuje typ vytváˇrenéhopro- jektu. Maven si stahuje soubory z internetu, proto potˇrebujeminimálnˇepro první spuštˇení pˇrístupk internetu, aby si mohl stáhnout potˇrebnébalíˇckya aktualizace. Je to systém, který m ˚užebýt použit v r ˚uznýchvývojových
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages59 Page
-
File Size-