Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilIva Janečková
1
Tvorba webových aplikací s Apache Maven Využití Mavenu pro efektivní vývoj Jety Pavel Jetenský 29.10.2009
2
1. Založení nové webové aplikace 2. Vývoj webové aplikace 3. Nasazení (deploy) Úkoly při vývoji webu
3
Maven Archetype Plugin Úkol 1.1 - založte si webovku mvn archetype:create -DgroupId=net.jetensky.webandmaven -DartifactId=TestWebApp -DarchetypeArtifactId=maven-archetype-webapp
4
Úkol 1.2 - spusťte aplikaci v tomcatu mvn package copy target/TestWebApp.war $Tomcat/webapps $Tomcat/bin/startup.bat http://localhost:8080/TestWebApphttp://localhost:8080/TestWebApp
5
Úkol 1.3 - na index.jsp zobrazte aktuální čas IndexControllerServlet.java - do requestu dá "time" web.xml registrace nového servletu na *.html web-app version="2.5" index.jsp - Cas je: ${time} Vyzkoušejte to A teď bude potřeba přidat ještě ${user} - co vše musíte udělat?
6
javax.servlet servlet-api 2.5 provided jstl 1.1.2 taglibs standard 1.1.2 Dependency k úkolu
7
Vývoj webapp Jak se řeší nutnost buildování Waru? Build buildí přímo do tomcat/webapps I tak však usíme při změně kódu pouštět build Používáme Exploded War a IDE kompiluje do WEB-INF/classes Při změně.java nutno restartovat tomcat (nebo touch web.xml) Debugujeme aplikaci přes Java Remote Debugging - změny IDE přenese Nepřenesou se větší strukturální změny To řeší Java Rebel - komerční, složitá konfigurace
8
TestWebApp org.mortbay.jetty maven-jetty-plugin 10 Maven Jetty Plugin Vyvíjíme fofrem
9
Úkol 2.1 - vypusťte jettyho 1. mvn jetty:run ve složce aplikace 2. Proveďte změnu v IndexControllerServlet.java - uložte do request scope message a zobrazte na JSP stránce ${message} 3. Propagujte změnu do jettyho 1. Make Idea, Save v Eclipse nebo mvn compile z command line 4. Chvilku počkejte a pak reload v prohlížeči, změny se projeví
10
Maven Cargo Plugin Když jetty nestačí Automatická instalace kontejneru ze ZIPu z URL Deploy jednoho nebo více J2EE (War, EAR) do kontejneru Podporované kontejnery - Jboss, Tomcat, Jetty, Weblogic, OC4j, Jonas Podporované kontejnery Spuštění kontejneru v rámci integračního testu (HttpUnit, Selenium) Archetypy: Single Webapp Module Archetype, Separate Functional Test Module Archetype
11
org.codehaus.cargo cargo-maven2-plugin tomcat6x http://www.apache.org/dist/tomcat/tomcat- 6/v6.0.20/bin/apache-tomcat-6.0.20.zip Cargo - Automatická instalace kontejneru z URL
12
Úkol 3.1 - stáhněte si v buildu tomcat 1. Nakonfigurujte si v pom.xml cargo plugin pro tomcat6x s ZipUrlInstaller 2. mvn package cargo:start 1. Tomcat se stáhne z uvedené URL, rozbalí a spustí s vaší aplikací 3. Ověřte URL v prohlížeči http://localhost:8080/TestWebApp/index.htmlhttp://localhost:8080/TestWebApp/index.html 4. Hotovo :)? Použijte element ZipUrlInstaller/installDir ${project.build.directory}/cargoinstalls
13
org.codehaus.cargo cargo-maven2-plugin... kontejner s ZipUrlInstaller... ${pom.groupId} TestWebApp1 war test1 Deploy více warů Varianta kontejner z URL
14
Úkol 3.2 - deploy více warů Varianta kontejner z URL 1. Vytvořte si TestWebApp1 a TestWebApp2 a instalujte do lokální repo (mvn install) 2. Nakonfigurujte si nový pom.xml s cargo plugin a tomcat6x s ZipUrlInstaller 3. Do pom.xml přidejte TestWebApp1 a 2 jako dependency 4. Přidejte configuration/cofiguration/deployables 5. Spusťte cargo:start 6. Ověřte test1 a test2 v prohlížeči (http://localhost:8080/TestWebApp1/index.html a TestWebApp2/index.html)http://localhost:8080/TestWebApp1/index.html 7. Hotovo:)? Zkuste změnit tomcat za jettyho
15
runtime http://localhost:8080/manager admin tomcat6x remote remote Deploy více warů Varianta remote container
16
Deploy více warů Tomcat uživatel pro deploy
17
Úkol 3.2.1 - deploy více warů Varianta remote container 1. Nakonfigurujte si nový pom.xml s cargo plugin a tomcat6x s ZipUrlInstaller 2. Do pom.xml přidejte TestWebApp1 a 2 jako dependency 3. Přidejte configuration/configuration/properties s cargo.tomcat.manager.url (+username, password) 4. Přidejte configuration/deployer[@type="remote"]/deployables 5. Spusťte tomcat s nainstalovanou manager aplikací a adminem v tomcat-users 6. Spusťte cargo:deploy 7. Ověřte URL v prohlížeči - http://localhost:8080/manager/htmlhttp://localhost:8080/manager/html
18
${cargo.remote.password} localhost true http://localhost:8080/manager admin Deploy více warů profily
19
localhost true... Deploy více warů Výchozí profil - activation/activeByDefault
20
Úkol 3.2.2 - deploy více warů Varianta remote container - profily 1. Do předchozího příkladu doplňte profil localhost na deploy do tomcatu běžícím na jiné URL. 1. V praxi využití např. tyto profily: 1. localhost deploy na lokálně běžící tomcat vývojáře 2. test deploy na referenční testovací prostředí 3. perf-testdeploy na prostředí pro výkonnostní testy 2. Hotovo? Do profilu localhost doplňte activation/activeByDefault
21
mvn archetype:create -DgroupId=net.jetensky.webandmaven -DartifactId=TestWebApp - DarchetypeGroupId=org.codehaus.cargo - DarchetypeArtifactId= JMENO_ARCHETYPU: cargo-archetype-webapp-single-module Funkční testy jsou v package /it/ v single pom webové aplikace cargo-archetype-webapp-functional-tests-module Funkční testy jsou v samostatném modulu Spuštění kontejneru v rámci integračního testu
22
Úkol 3.3.1 - spuštění integračních testů (single module) 1.Vytvořte si maven projekt z archetypu cargo-archetype-webapp-single- module 2.Opravte chybný package montreal.demo 1.src\main\java\net\jetensky\webandmaven\SomeClass.java 2.src\test\java\net\jetensky\webandmaven\SomeClassTest.java 3.Spušťte mvn cargo:install 1.zbuilduje se aplikace 2.spustí se Unit testy 3.spustí se Jetty6 s novou aplikací 4.spustí se integrační test WebappTest.java
23
Úkol 3.3.2 - spuštění integračních testů (multi module) 1.Vytvořte si maven projekt z archetypu cargo-archetype-webapp- functional-tests-module 2.Opravte chybu v package jako v předchozím příkladu 3.Spušťte mvn cargo:install v root složce
24
Prostor pro dotazy Děkuji za pozornost Functional testing with maven and cargo Myšlenky otce Fura - blog o Java (Honza Novotný)Myšlenky otce Fura Jetyho články o vývoji SW na tomto blogu Jetyho blog
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.