Modul Do Systému Maven

Modul Do Systému Maven

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    59 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us