Your SlideShare is downloading. ×
0
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Maven Eclipse
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Maven Eclipse

2,008

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,008
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Maven2.apache.org: usare un linguaggio formale per descrivere in modo standard tutte le fasi del ciclo di vita del software Simone Federici s.federici@k-tech.it Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 2. Evoluzione nella gestione dei progetti Ogni riferimento a volti o persone conosciute è puramente casuale. Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 3. Cos'è Maven • Un modo standard per descrivere progetto • un build, test, package, deploy tool • un gestore di dipendenze • un generatore di report e documentazione • e molto altro ancora... Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 4. Convention over Configuration • Un default nella configurazione rende tutto più semplice. • La descrizione del progetto con il suo ciclo di vita è sempre possibile fin nei minimi dettagli ma non è più obbligatoria Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 5. Un esempio... vale più di 1000 parole! mvn archetype:create -DgroupId=it.jip.confsl -DartifactId=esempio Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 6. Eclipse- Plug-in Genera automaticamente i file .project e .classpath Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 7. Il POM Project Object Model • Il progetto viene descritto interamente tramite un file xml (pom.xml) • Uno standard che descrive il progetto, il ciclo di build e rilascio, il reporting e molto altro ancora Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 8. <project Semplice POM xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://maven.apache.org/POM /4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4. 0.0 </modelVersion> <groupId>it .jip .c onfs l</groupId> <artifactId>esem pio </artifactId> <packaging>ja r</packaging> <version>1.0 -S NAP SHOT </version> <name>esempio</name> <url>http://maven.apache.org</url> <dependencies> <de pen de nc y> <gr ou pId>j un it </g rou pId > <ar tifa ct Id>j un it </a rtifac tId> <ve rs io n> 3. 8.1 </ ve rs io n> <sc op e> test </ sco pe> </d ep end en cy > </dependencies> </project> Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 9. Artefact • Identificazione precisa di un artefact è data dalla terna: – groupId + artifactId + version • Packaging: – POM (Può contenere dei moduli) – JAR – WAR – EAR Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 10. Le Dipendenze • una dipendenza è essa stessa una artefact e quindi è identifacata tramite: – groupId + artifactId + version • Scope: compile,test,runtime,provided,system • Repository condiviso (locale e remoto) Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 11. I goals e le Phases Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 12. In pratica • mvn compile • mvn test -Ddbuser=simone -Ddbpas=**** • mvn package • mvn install • mvn deploy -Ddbuser=prod -Ddbpas=secret i file all'interno delle resources saranno filtrati con le properties passate, prima di eseguire i test. ${dbuser} e ${dbpas} Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 13. Plugin: Sveliamo il trucco! Un artifact speciale che definisce uno o più goal da “agganciare” alle phases o da invocare in modo indipendente. Manca quello per il caffè... Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 14. In pratica con i profili • mvn compile -Pdevelop • mvn test -Psystem • mvn package -P produzione • mvn install -P produzione,nolog • mvn deploy -P remoto Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 15. Plugin HELP • mvn help:active-profiles • mvn help:effective-pom Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 16. mvn site Il plugin site, legge il pom e genera un sito documentale del progetto. Tramite template velocity è possibile personalizzare il sito. I numerosi plugin di reporting: metrics, checkstyle, cobertura, findbugs, pdm, svn-stat, ecc... Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 17. Profili • Un progetto tanti contesti. • Test unitari, Test funzionali, Collaudo, Produzione... Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 18. Plugin per Eclipse grafico! • Esiste un plugin per eclipse grafico in grado di gestire le dipendenze automaticamente. • Per esperienza vissuta, lo sconsiglio vivamente. • La struttura di un progetto Eclipse è molto semplice, quella di maven no :-P Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 19. Tutto in una pagina Centralizzazione, Convenzioni, Plugins, Profili, Configurazioni, Sito Documentale, Ambiente di sviluppo, Deploy remoto, Deploy Locale, Continuous Integration, Release e Spapshot, System Test, Test Unitari, Test di integrazione, code style, SVN/CVS pubblico/sviluppo, Packaging, + ANT, +script, e non entra tutto:-) Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 20. Riferimenti • http://maven.apache.org • http://docs.codehaus.org/display/MAVENUSER • Maven: The Definitive Guide (1.0 Alpha 1) • http://www.sonatype.com/book/index.html Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it
  • 21. Ringraziamenti: Giorgio Vinci Mara Marzocchi K-Tech Eclipse-IT Simone Federici Eclipse-IT JavaDay Napoli- 5 ottobre 2007 s.federici@k-tech.it

×