SlideShare a Scribd company logo
1 of 21
Download to read offline
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
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
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
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
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
Eclipse- Plug-in




        Genera
automaticamente i file
 .project e .classpath
                                                     Simone Federici
 Eclipse-IT     JavaDay Napoli- 5 ottobre 2007   s.federici@k-tech.it
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
<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
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
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
I goals e le Phases




                                                      Simone Federici
Eclipse-IT       JavaDay Napoli- 5 ottobre 2007   s.federici@k-tech.it
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
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
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
Plugin HELP
• mvn help:active-profiles
• mvn help:effective-pom




                                                   Simone Federici
 Eclipse-IT   JavaDay Napoli- 5 ottobre 2007   s.federici@k-tech.it
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
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
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
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
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
Ringraziamenti:

              Giorgio Vinci
             Mara Marzocchi



                   K-Tech
                  Eclipse-IT
                                                   Simone Federici
Eclipse-IT    JavaDay Napoli- 5 ottobre 2007   s.federici@k-tech.it

More Related Content

What's hot

Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven World#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven Worldkino2k
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzionegiacomos
 
Panoramica su Ant
Panoramica su AntPanoramica su Ant
Panoramica su Antbobpuley
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Google cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGoogle cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGiuliano Latini
 
Vagrant e Docker a confronto;scegliere ed iniziare
Vagrant e  Docker a confronto;scegliere ed iniziareVagrant e  Docker a confronto;scegliere ed iniziare
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloudGabriele Baldoni
 
Pacchi e pacchetti
Pacchi e pacchettiPacchi e pacchetti
Pacchi e pacchettigiallu
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerRoberto Messora
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROIDPaolo Tosato
 
Gaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ componentsGaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ componentsFrancesco Fullone
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017MongoDB
 
Automation Night (Docker)
Automation Night (Docker)Automation Night (Docker)
Automation Night (Docker)Giuliano Latini
 
Closure Visto Da Vicino
Closure Visto Da VicinoClosure Visto Da Vicino
Closure Visto Da Vicinodavide ficano
 

What's hot (20)

Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven World#2014LRIS - Liferay in a Cloud-Driven World
#2014LRIS - Liferay in a Cloud-Driven World
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Livin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzioneLivin' with Docker - dallo sviluppo alla produzione
Livin' with Docker - dallo sviluppo alla produzione
 
Introduzione a docker
Introduzione a dockerIntroduzione a docker
Introduzione a docker
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
Panoramica su Ant
Panoramica su AntPanoramica su Ant
Panoramica su Ant
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Google cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetesGoogle cloud: Big Data + docker = kubernetes
Google cloud: Big Data + docker = kubernetes
 
Vagrant e Docker a confronto;scegliere ed iniziare
Vagrant e  Docker a confronto;scegliere ed iniziareVagrant e  Docker a confronto;scegliere ed iniziare
Vagrant e Docker a confronto;scegliere ed iniziare
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
 
Pacchi e pacchetti
Pacchi e pacchettiPacchi e pacchetti
Pacchi e pacchetti
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
Gaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ componentsGaetano Giunta: introduzione agli eZ components
Gaetano Giunta: introduzione agli eZ components
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
Automation Night (Docker)
Automation Night (Docker)Automation Night (Docker)
Automation Night (Docker)
 
Closure Visto Da Vicino
Closure Visto Da VicinoClosure Visto Da Vicino
Closure Visto Da Vicino
 

Viewers also liked

Terracotta Springmeeting
Terracotta SpringmeetingTerracotta Springmeeting
Terracotta SpringmeetingSimone Federici
 
Self-presentation: Marcus Linder as new researcher at Viktoria Swedish ICT
Self-presentation: Marcus Linder as new researcher at Viktoria Swedish ICTSelf-presentation: Marcus Linder as new researcher at Viktoria Swedish ICT
Self-presentation: Marcus Linder as new researcher at Viktoria Swedish ICTMarcus Linder
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiSimone Federici
 
Vilken betydelse har affärsmodeller för framgångsrika energitjänster?
Vilken betydelse har affärsmodeller för framgångsrika energitjänster? Vilken betydelse har affärsmodeller för framgångsrika energitjänster?
Vilken betydelse har affärsmodeller för framgångsrika energitjänster? Marcus Linder
 
Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013
Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013
Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013Marcus Linder
 
The association between environmental orientation and financial performance
The association between environmental orientation and financial performanceThe association between environmental orientation and financial performance
The association between environmental orientation and financial performanceMarcus Linder
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise worldSimone Federici
 
BORANG TAKSIRAN DAN rekod transit PENDIDIKAN MORAL tahun 4
BORANG TAKSIRAN DAN  rekod transit PENDIDIKAN MORAL tahun 4BORANG TAKSIRAN DAN  rekod transit PENDIDIKAN MORAL tahun 4
BORANG TAKSIRAN DAN rekod transit PENDIDIKAN MORAL tahun 4Norazlaili Mokhtar
 
Capturing Value from Green Offers - slides PhD thesis defense
Capturing Value from Green Offers - slides PhD thesis defenseCapturing Value from Green Offers - slides PhD thesis defense
Capturing Value from Green Offers - slides PhD thesis defenseMarcus Linder
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di libertaSimone Federici
 
Ujian akhir tahun muzik tahun 5
Ujian akhir tahun muzik tahun 5Ujian akhir tahun muzik tahun 5
Ujian akhir tahun muzik tahun 5Norazlaili Mokhtar
 
Business Model Innovation
Business Model InnovationBusiness Model Innovation
Business Model InnovationMarcus Linder
 

Viewers also liked (20)

Opensource Aziende
Opensource AziendeOpensource Aziende
Opensource Aziende
 
Terracotta Springmeeting
Terracotta SpringmeetingTerracotta Springmeeting
Terracotta Springmeeting
 
Self-presentation: Marcus Linder as new researcher at Viktoria Swedish ICT
Self-presentation: Marcus Linder as new researcher at Viktoria Swedish ICTSelf-presentation: Marcus Linder as new researcher at Viktoria Swedish ICT
Self-presentation: Marcus Linder as new researcher at Viktoria Swedish ICT
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo eviti
 
Vilken betydelse har affärsmodeller för framgångsrika energitjänster?
Vilken betydelse har affärsmodeller för framgångsrika energitjänster? Vilken betydelse har affärsmodeller för framgångsrika energitjänster?
Vilken betydelse har affärsmodeller för framgångsrika energitjänster?
 
Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013
Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013
Cirkulära affärsmodeller för miljö och lönsamhet - Folkuniversitetet 23 okt 2013
 
The association between environmental orientation and financial performance
The association between environmental orientation and financial performanceThe association between environmental orientation and financial performance
The association between environmental orientation and financial performance
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise world
 
BORANG TAKSIRAN DAN rekod transit PENDIDIKAN MORAL tahun 4
BORANG TAKSIRAN DAN  rekod transit PENDIDIKAN MORAL tahun 4BORANG TAKSIRAN DAN  rekod transit PENDIDIKAN MORAL tahun 4
BORANG TAKSIRAN DAN rekod transit PENDIDIKAN MORAL tahun 4
 
Capturing Value from Green Offers - slides PhD thesis defense
Capturing Value from Green Offers - slides PhD thesis defenseCapturing Value from Green Offers - slides PhD thesis defense
Capturing Value from Green Offers - slides PhD thesis defense
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di liberta
 
What is kanban
What is kanbanWhat is kanban
What is kanban
 
What is xp
What is xpWhat is xp
What is xp
 
DevOps with Fabric
DevOps with FabricDevOps with Fabric
DevOps with Fabric
 
Fabric Python Lib
Fabric Python LibFabric Python Lib
Fabric Python Lib
 
Java VS Python
Java VS PythonJava VS Python
Java VS Python
 
Java o non java
Java o non javaJava o non java
Java o non java
 
Ujian akhir tahun muzik tahun 5
Ujian akhir tahun muzik tahun 5Ujian akhir tahun muzik tahun 5
Ujian akhir tahun muzik tahun 5
 
Business Model Innovation
Business Model InnovationBusiness Model Innovation
Business Model Innovation
 
Pepper Tulipe
Pepper TulipePepper Tulipe
Pepper Tulipe
 

Similar to Maven Eclipse

Scala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéScala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéEdmondo Porcu
 
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Fabio Mora
 
Maven: Convention over Configuration
Maven: Convention over ConfigurationMaven: Convention over Configuration
Maven: Convention over Configurationvschiavoni
 
Working between the clouds
Working between the cloudsWorking between the clouds
Working between the cloudsDavide Cerbo
 
Tech Webinar: Test e2e per AngularJS e non solo
Tech Webinar: Test e2e per AngularJS e non soloTech Webinar: Test e2e per AngularJS e non solo
Tech Webinar: Test e2e per AngularJS e non soloCodemotion
 
Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico
Come mettere in sicurezza le applicazioni legacy, un approccio pragmaticoCome mettere in sicurezza le applicazioni legacy, un approccio pragmatico
Come mettere in sicurezza le applicazioni legacy, un approccio pragmaticoAntonio Parata
 
Open Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ'sOpen Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ'sCodemotion
 
Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Paolo Galfione
 
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webAndrea Dottor
 
Node.js – Convincing the boss
Node.js – Convincing the bossNode.js – Convincing the boss
Node.js – Convincing the bossClaudio Cicali
 
m2eclipse: integrazione maven2 in eclipse IDE
m2eclipse: integrazione maven2 in eclipse IDEm2eclipse: integrazione maven2 in eclipse IDE
m2eclipse: integrazione maven2 in eclipse IDEMarcello Teodori
 
Scrivere un'estensione per PostgreSQL 9.1
Scrivere un'estensione per PostgreSQL 9.1Scrivere un'estensione per PostgreSQL 9.1
Scrivere un'estensione per PostgreSQL 9.1Marco Nenciarini
 
Tapestry 5 in Action Introduzione
Tapestry 5 in Action IntroduzioneTapestry 5 in Action Introduzione
Tapestry 5 in Action Introduzionemaraexception
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfrescoMirco Leo
 
Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4Marco Loregian
 
Delphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del TestingDelphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del TestingMarco Breveglieri
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPGiorgio Cefaro
 

Similar to Maven Eclipse (20)

Scala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéScala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perché
 
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2
 
Maven: Convention over Configuration
Maven: Convention over ConfigurationMaven: Convention over Configuration
Maven: Convention over Configuration
 
Silex, iniziamo
Silex, iniziamoSilex, iniziamo
Silex, iniziamo
 
Working between the clouds
Working between the cloudsWorking between the clouds
Working between the clouds
 
Tech Webinar: Test e2e per AngularJS e non solo
Tech Webinar: Test e2e per AngularJS e non soloTech Webinar: Test e2e per AngularJS e non solo
Tech Webinar: Test e2e per AngularJS e non solo
 
Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico
Come mettere in sicurezza le applicazioni legacy, un approccio pragmaticoCome mettere in sicurezza le applicazioni legacy, un approccio pragmatico
Come mettere in sicurezza le applicazioni legacy, un approccio pragmatico
 
Open Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ'sOpen Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ's
 
Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018
 
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
 
Node.js – Convincing the boss
Node.js – Convincing the bossNode.js – Convincing the boss
Node.js – Convincing the boss
 
VS Package @ CD2008
VS Package @ CD2008VS Package @ CD2008
VS Package @ CD2008
 
m2eclipse: integrazione maven2 in eclipse IDE
m2eclipse: integrazione maven2 in eclipse IDEm2eclipse: integrazione maven2 in eclipse IDE
m2eclipse: integrazione maven2 in eclipse IDE
 
Scrivere un'estensione per PostgreSQL 9.1
Scrivere un'estensione per PostgreSQL 9.1Scrivere un'estensione per PostgreSQL 9.1
Scrivere un'estensione per PostgreSQL 9.1
 
Tapestry 5 in Action Introduzione
Tapestry 5 in Action IntroduzioneTapestry 5 in Action Introduzione
Tapestry 5 in Action Introduzione
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Owasp parte1-rel1.1
Owasp parte1-rel1.1Owasp parte1-rel1.1
Owasp parte1-rel1.1
 
Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4
 
Delphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del TestingDelphi & Dintorni Webinar - Diventa un mago del Testing
Delphi & Dintorni Webinar - Diventa un mago del Testing
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
 

More from Simone Federici

More from Simone Federici (6)

Django productivity tips and tricks
Django productivity tips and tricksDjango productivity tips and tricks
Django productivity tips and tricks
 
Django per non credenti
Django per non credentiDjango per non credenti
Django per non credenti
 
Terracotta Torino Javaday
Terracotta Torino JavadayTerracotta Torino Javaday
Terracotta Torino Javaday
 
Jipday Portletjsr168
Jipday Portletjsr168Jipday Portletjsr168
Jipday Portletjsr168
 
Spring20 Javaday
Spring20 JavadaySpring20 Javaday
Spring20 Javaday
 
Javaday Performance 2009
Javaday Performance 2009Javaday Performance 2009
Javaday Performance 2009
 

Maven Eclipse

  • 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