Entorn desenvolupament

26
Entorn desenvolupament Eclipse + Tomcat + Subversion + Maven

description

Entorn desenvolupament. Eclipse + Tomcat + Subversion + Maven. Com volem el nostre entorn ?. Volem entorn per poder desevolupar còmodament aplicacions web Java - PowerPoint PPT Presentation

Transcript of Entorn desenvolupament

Page 1: Entorn desenvolupament

Entorn desenvolupament

Eclipse + Tomcat + Subversion + Maven

Page 2: Entorn desenvolupament

Com volem el nostre entorn?

• Volem entorn per poder desevolupar còmodament aplicacions web Java

• Volem que sigui fàcil poder construir i empaquestar les aplicacions, sense necessitar el IDE que fem servir per programar

• Volem poder emmagatzemar el codi font de forma que tinguem un control de versions

Page 3: Entorn desenvolupament

http://www.eclipse.org/downloads/

Page 4: Entorn desenvolupament

http://tomcat.apache.org/

Page 5: Entorn desenvolupament

Afegim el Tomcat a Eclipse

Page 6: Entorn desenvolupament

Tomcat + Eclipse

• Li diem a Eclipse on està el Tomcat• Eclipse crea un projecte Servers• Podem parar-lo i engegar-lo a la pestanya

servers• Veiem els logs en consola• Eclipse permet afegir i treure al Tomcat

projectes de tipus web

Page 7: Entorn desenvolupament

Plugin maven: m2e-wtp

Page 8: Entorn desenvolupament

Què és Maven?

• És una eina per gestionar el cicle de vida d’un projecte Java

• Línia de comandes• Semblant al “make”, pero més declaratiu• Declarem en un fitxer les característiques del

projecte i en base a aixo sap que ha de fer• Proporciona una forma unificada de construir

un projecte i uns estàndars

Page 9: Entorn desenvolupament

Nomenclatura de Maven

• Artifacts– Son els projectes que gestiona Maven– Definits per grup, id i versió

• Archetypes– Son esquelets de projecte. Per exemple, una aplicació

normal o una aplicació web.• Repositoris– Maven té un repositori central amb les totes les

versions de les llibreries més utilitzades– Repositori local on deixa els nostres artifacts

Page 10: Entorn desenvolupament

Cicle de vida de projecte

compile

test

deploy

install

package

- Obtenir dependències, Compilar el codi, copiar els fitxers de recursos…

- Passar els jocs de prova (JUnit) i aturar el procés si no es passen

- Generar el paquet del projecte (jar, war…), o sigui, el “artifact”

- Copiar el artifact val repositori local

- Copiar el artifact al repositori remot (no confondre amb fer deploy a Tomcat)

Page 11: Entorn desenvolupament

Estructura de directoris estàndar

/src//main/ projecte propiament

/java/ fitxers per compilar/resources/ fitxers no compilables

/test/ tests del projecte/java//resources/

/target/ fitxers compilats i paquets

/pom.xml

Page 12: Entorn desenvolupament

Pom.xml

• Fitxer on definim el projecte• Grup, ID i versió per definir el artifact• Dependències d’altres llibreries• Plugins addicionals que pugui necessitar i en

quina fase del cicle de vida s’utilitzen– Ex: excutar l’aplicació en un Tomcat

• Perfils– Ex: versio de desenvolupament / producció

Page 13: Entorn desenvolupament

Dependències

• És la característica més important de Maven• Al pom.xml declarem els artifacts dels que

depen el nostre projecte• Maven va a buscar-los al seu repositori i els

deixa al repositori local• Es baixa l’arbre complet de dependències de

forma automàtica

Page 14: Entorn desenvolupament

I que pinta Eclipse aquí?

• Plugin que inclou Maven• Crea els projectes amb l’estructura de

directoris de maven i el pom.xml• Al revés, genera la configuració de Eclipse a

partir d’un pom.xml• Eclipse crida a maven per les tasques de

compilació i per gestionar les dependències• Resultat: tenim un projecte Eclipse + Maven

Page 15: Entorn desenvolupament

Exemple: Places lliures

• Farem una pàgina que crida la URL que retorna les places lliures a les aules de la FIB en format JSON.

• Crearem un projecte Maven de tipus web• Maven-webapp-archetype• Dependències: – json-lib, per parsejar el fitxer– JSTL, per la pàgina on es mostrarà– servlet-api-2.5, pel Tomcat

Page 16: Entorn desenvolupament

Últim pas: Subversion

• Permet treball en equip sobre un mateix projecte, mantenint versions

• Cal un plugin a eclipse– Eclipse marketplace: subclipse

• Per compartir un projecte– Team > Share Project, seleccionar SVN– Especificar un repositori– Pugem el projecte al nostre repositori

Page 17: Entorn desenvolupament

Subversion a la FIB

• La FIB proporciona un servidor subversion– https://svn.fib.upc.edu/svn/user.name

• Protegit i privat amb user/pass del Racó• Possibilitat de compartir amb altres usuaris

del Racó (companys de pràctiques)– https://svn.fib.upc.edu/editarPermisos

Page 18: Entorn desenvolupament

Operacions bàsiques

• Update– Obté els últims canvis que s’han fet– Fer-ho sempre abans de començar a treballar– Ens assegurem de tenir una versió “fresca” amb els

últims canvis• Commit– Envia els canvis al servidor– Deixa posar un comentari. Es una bona pràctica

• Checkout / import– Baixar un projecte / importar-lo

Page 19: Entorn desenvolupament

Convencions del repositori

• trunk– Es on tenim la versió principal del nostre projecte– Compila i funciona (i si no, no s’hauria de pujar)

• tags– Una carpeta per cada versió– Permet fer un “update” del codi a una versió

• branches– Son branques amb desenvolupaments “a mitges”– Un cop provades, es fa un “merge” amb el trunk

Page 20: Entorn desenvolupament

Concurrència

• Què passa si dos persones editen el mateix fitxer al mateix temps?– Usuari 1: update i edita el aules.jsp– Usuari 2: update i editar el aules.jsp– Usuari 1: commit dels canvis– Usuari 2: commit dels canvis

• Si no han tocat exactament la mateixa línia, es fa un merge dels 2 fitxers.

• Si han tocat el mateix: conflicte!

Page 21: Entorn desenvolupament

Línia de comandes

• Maven i SVN tenen linia de comandes• Podem alternar l’us desde dintre d’Eclipse i

des de fora (com a molt fem un “refresh”)• Maven permet en linia de comandes cridar a

plugins per fer moltes més coses– Des d’eclipse es pot pero s’han de crear “run

configurations” i no és tan àgil

Page 22: Entorn desenvolupament

Traient suc a l’entorn muntat…

• Executar l’aplicació maven en un Tomcat propi, només amb Maven– Mvn Tomcat:run

• Enviar l’aplicació a un Tomcat remot utilitzant el Tomcat Manager– Primer configurem el pom.xml – Mvn tomcat:deploy –Pdev– Mvn tomcat:deploy -Pprod

Page 23: Entorn desenvolupament

Traient més suc a l’entorn muntat…

• Crear una versió: canviar el pom.xml, pujar la versió al SVN i crear un tag– Mvn release:prepare– Mvn release:perform

• Fer un web amb la informació bàsica del projecte: javadocs, anàlisis del codi…– Mvn site:site

Page 24: Entorn desenvolupament

Integració contínua

• Quan algú puja codi al subversion…– Baixa el codi del repositori– Compila (amb Maven no cal Eclipse!)– Passa els testos– Si algo falla, envia un mail

• A les nits (nightly build)– Baixem el que hi ha al repositori– Construim el projecte i el deixem públic– Generem informes

Page 25: Entorn desenvolupament

Què més podriem fer

• Mantenir un ranking de les persones que han pujat més codi

• Mantenir un ranking de qui ha fet petar més vegades la compilació

• Publicar automàticament l’aplicació• Executar testos més complicats– Pujar l’aplicació a un servidor de prova– Passar un test de càrrega

Page 26: Entorn desenvolupament

Conclusions

• Maven ens ajuda a organitzar el nostre projecte i a que poguem construir-lo desde linia de comandes

• Eclipse ens permet facilment treballar amb Maven, no hem de triar un o altre

• Des d’eclipse podem gestionar el nostre codi a Subversion

• … si ho tenim tot, podem tenir majordom!