Maven2.apache.org: usare un linguaggio formale per descrivere in modo standard tutte le fasi del ciclo di vita del software

Documenti analoghi
Cosa è importante: pom.xml Goal Plug-in Repository

Eclipse e Subversion

Apache Maven. Carmine Spagnuolo Ph.D Student in Computer Science. April 26, 2015

Manuale d uso della piattaforma per lo sviluppo e rilascio di componenti software QMSS

Riferimenti. Sommerville, Capitolo 29

06 Analisi di qualità del codice, collezioni avanzate, enumeration e classi innestate

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT. Paolo Salvaneschi B1_1 V1.

L IDE NETBEANS. (slide: A. Baratè) Programmazione per la Musica Adriano Baratè

Configuration Change Release Management

Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse

Manuale d uso della piattaforma per lo sviluppo e rilascio di componenti software. QMSS - Continuous Integration

[Sistemi sw di collaborazione] in ambito open source

Università degli Studi di Bologna Facoltà di Ingegneria. Sistemi Distribuiti M A.A Esercitazione JBI. Un tipico scenario di integrazione

STANDARD DOCUMENTALE PIANO DI GESTIONE DELLA Ver. 7

Programmazione Java Avanzata

Test e collaudo del software Continuous Integration and Testing

Introduzione alle griglie computazionali LEZIONE N. 10. Università degli Studi di Napoli Federico II Corso di Laurea in Informatica III Anno

Simple design. Matteo Vaccari Milano XP User Group, 19 settembre 2007

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Strumenti di Build Automation - Jenkins

Sviluppo web con CakePHP

EJB Components. Leonardo Mariani Esercitazione di Sistemi Distribuiti. Oggetti Distribuiti

Università di Bologna Scuola di Ingegneria e Architettura. Sistemi Distribuiti M A.A Esercitazione JBI

APPENDICE 4 AL CAPITOLATO TECNICO

Spring Stack Testing: Continuous integration, Continuous Agitation

Esercitazioni Ingegneria del So2ware 6 - Managing Source Code and Project management tool

Il processo di sviluppo del software

Consegna continua: automazione della pipeline di distribuzione

Mettere il database sotto source control. Alessandro Alpi

Le linee guida sul riuso dei software e il mondo open-source nuovi paradigmi per nuove opportunità per la PA

Z-LAB srl - Via Nazionale, San Paolo D Argon (BG) - Tel Fax

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Svigruppo. Monga. Sistemi di build automation. Make & Autotools Make Autotools. Svigruppo. Monga. Sistemi di build automation

Fondamenti di Informatica T2 Modulo 2

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Svigruppo. Monga. Sviluppo in gruppi di lavoro complessi. Sistemi di build automation. Make & Autotools. Svigruppo. Monga

Sviluppo software in gruppi di lavoro complessi 1

installazione pacchetti mandriva 1 aprire il centro di controllo

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

Plugin di integrazione con Drupal 7.x

Estendere Rialto. Esercitazione Data Mining 5 Novembre

Prova finale di Ingegneria del software

IT Project Management

Liferay & Salesforce

SOA case study. Un esempio di progetto SOA. Le esperienze maturate sul campo. organizzato da:

Ciclo di vita per lo sviluppo di software sicuro

Password di accesso al database criptata

Ambienti di Sviluppo. Linguaggi compilati

Metriche per programmi Java. Angelo Gargantini Informatica III (B) 2010

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

1 - Accesso ad una IView nel PCD tramite Portal Component

CORSO MOC20415: Implementing a Desktop Infrastructure. CEGEKA Education corsi di formazione professionale

07 JAR e Javadoc. Danilo Pianini Giovanni Ciatto, Angelo Croatti, Mirko Viroli

Strumenti e metodi per l e-learning l learning UD2. Filippo Sciarrone. 28/09/2009 Guida all uso di piattaforme e-learning 1

Sviluppo di una interfaccia grafica basata sul linguaggio PQL per interrogazioni di modelli di processo in Apromore

CORSO MOC80299: What's New - Technical in Microsoft Dynamics AX 2012 for Development

ITIL e PMBOK Service management and project management a confronto

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Sistemi software di collaborazione in ambito open source

Il concetto di Package

Laboratorio virtuale

Introduzione a DevOps

Università di Bergamo Facoltà di Ingegneria GESTIONE DEI SISTEMI ICT. Paolo Salvaneschi B1_1 V1.0. Strumenti software

Strumenti di gestione del ciclo di vita del software

Relazione di Tirocinio presso STMicroelectronics

Basi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10

Strumenti di gestione del ciclo di vita del software

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

ACADEMY SVILUPPATORE JAVA

Programmazione Orientata agli Oggetti in Linguaggio Java

REGIONE BASILICATA UFFICIO S. I. R. S.

effe Document Versione build 100 QUICK START

INGEGNERIA DEI SISTEMI SOFTWARE E DEI SERVIZI DI RETE PROGETTO GQM + STRATEGIES. Luca Mastrogiovanni Marco Vasselli 16 Dicembre 2013

Di seguito vengono riportate le principali novità e differenze rispetto alle versioni precedenti del LIMS (4 e 6.1)

WP5. 9 Settembre Paolo Veronesi (INFN CNAF)

Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

MDD Tools in CSI Piemonte: industrializzazione dello sviluppo e progetto open source

IBM UrbanCode Deploy Live Demo

Liferay Resources Importer

ITIL cos'è e di cosa tratta

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Le distribuzioni GNU/Linux

TESI DI LAUREA IN INFORMATICA

FORUM PA Dal catalogo del riuso alla community developers italia: l'esperienza del CNR

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione al PMBOK

ottobre Fonti [SSA] Chapter 19, The Development Viewpoint Luca Cabibbo Punto di vista dello Sviluppo Luca Cabibbo SwA

Anno Accademico ANT Html e Css

ADT Framework Cos'è e come usarlo

30 Years of IT Culture

Integrare Alfresco con le applicazioni aziendali. Gli strumenti Helper e Importer

CORSO MOC20413: Designing and Implementing a Server Infrastructure. CEGEKA Education corsi di formazione professionale

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Anno Accademico Laboratorio di Tecnologie Web Introduzione a Tomcat

Strumenti di gestione del ciclo di vita del software

Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE

Allegato 1 Descrizione profili professionali

Modelli e strumenti per la generazione automatica di codice

Transcript:

Maven2.apache.org: usare un linguaggio formale per descrivere in modo standard tutte le fasi del ciclo di vita del software

Evoluzione nella gestione dei progetti Ogni riferimento a volti o persone conosciute è puramente casuale.

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...

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

Un esempio... vale più di 1000 parole! mvn archetype:create -DgroupId=it.jip.confsl -DartifactId=esempio

Eclipse- Plug-in Genera automaticamente i file.project e.classpath

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

Semplice POM <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" 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>

Artefact Identificazione precisa di un artefact è data dalla terna: groupid + artifactid + version Packaging: POM (Può contenere dei moduli) JAR WAR EAR

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)

I goals e le Phases

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}

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è...

In pratica con i profili mvn compile -Pdevelop mvn test -Psystem mvn package -P produzione mvn install -P produzione,nolog mvn deploy -P remoto

Plugin HELP mvn help:active-profiles mvn help:effective-pom

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...

Profili Un progetto tanti contesti. Test unitari, Test funzionali, Collaudo, Produzione...

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

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:-)

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

Ringraziamenti: Giorgio Vinci Mara Marzocchi K-Tech Eclipse-IT