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

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

Tvorba webových aplikací s Apache Maven Využití Mavenu pro efektivní vývoj Jety Pavel Jetenský 29.10.2009.

Podobné prezentace


Prezentace na téma: "Tvorba webových aplikací s Apache Maven Využití Mavenu pro efektivní vývoj Jety Pavel Jetenský 29.10.2009."— Transkript prezentace:

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


Stáhnout ppt "Tvorba webových aplikací s Apache Maven Využití Mavenu pro efektivní vývoj Jety Pavel Jetenský 29.10.2009."

Podobné prezentace


Reklamy Google