documentazione_3di_riservata:manuali_sviluppo:maven
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
documentazione_3di_riservata:manuali_sviluppo:maven [2015/08/25 16:57] – aalberghini | documentazione_3di_riservata:manuali_sviluppo:maven [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1 | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Introduzione a maven ====== | ||
- | |||
- | Maven è uno strumento nato per gestire i progetti Java. È in grado di occuparsi, se opportunamente configurato, | ||
- | Il progetto maven dispone di un [[http:// | ||
- | |||
- | ===== Repository maven ===== | ||
- | |||
- | I repository maven ospitano i vari artefatti dei vari gruppi e permettono il reperimento delle dipendenze specificate nel descrittore del progetto (pom.xml). Come accennato nel paragrafo precedente, esistono repository pubblici e privati centralizzati dai quali scaricare gli artefatti ma anche __repository locali__ creati ed utilizzati in automatico da maven su ogni macchina quando scarica un artefatto da una fonte esterna. Il repository locale è solitamente posto all' | ||
- | |||
- | ===== Progetti, artefatti, SNAPSHOT e file pom.xml ===== | ||
- | |||
- | Ogni progetto è identificato dai seguenti 2 parametri: | ||
- | |||
- | * groupId | ||
- | * artifactId | ||
- | |||
- | Il primo è un identificativo univoco del produttore del software (per esempio, org.apache per la Apache Software Foundation), | ||
- | |||
- | Ogni artefatto ha __necessariamente__ un numero di versione, per esempio 1.0.0. È possibile apporre il suffisso " | ||
- | |||
- | Tutte queste informazioni (e molte altre) vengono immesse nel file **pom.xml** presente nella root directory del progetto, che rappresenta il modello del progetto e conterrà tutti i metadati necessari a maven per risolvere le dipendenze, compilarlo, eseguire i test, ecc. | ||
- | |||
- | ===== Build lifecycle e goals===== | ||
- | |||
- | Il concetto di build di un progetto in maven è concepito come un "build lifecycle", | ||
- | - validate | ||
- | - compile | ||
- | - test | ||
- | - package | ||
- | - integration-test | ||
- | - verify | ||
- | - install | ||
- | |||
- | Essendo il processo già noto e ben definito, il pom.xml non serve ad altro se non a specificare i parametri necessari ad eseguire tutte le varie fasi dei lifecycle. | ||
- | |||
- | Nel caso in cui ci si appoggi a plugin aggiuntivi per creare gli artefatti del proprio progetto, è probabile che questi presentino dei loro step aggiuntivi che vanno ad aggiungersi ai passi della normale build: questi step prendono il nome di goal e si specificano solitamente nella forma **nome_plugin: | ||
- | < | ||
- | mvn clean dependency: | ||
- | </ | ||
- | nel quale si indica a maven di eseguire il passo **clean**, seguito dal goal **copy-dependencies** del plugin **dependency**, | ||
- | |||
- | |||
- | Per ulteriori approfondimenti, | ||
- | |||
- | |||
- | ====== Sonatype Nexus ====== | ||
- | |||
- | [[http:// | ||
- | |||
- | Un' | ||
- | |||
- | ====== Configurazione di maven ====== | ||
- | |||
- | Per potersi appoggiare al nostro server Nexus, è necessario configurare maven in modo da istruirlo su dove reperire gli artefatti. Per farlo è sufficiente modificare (o creare, se non già esistente) il file '' | ||
- | |||
- | <code xml settings.xml> | ||
- | <?xml version=" | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | < | ||
- | < | ||
- | <!--This sends everything else to /public --> | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | <!--all requests to nexus via the mirror --> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | < | ||
- | <!--make the profile active all the time --> | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | Come si può notare, è anche presente una sezione deployment all' | ||
- | < | ||
- | mvn deploy | ||
- | </ | ||
- | |||
- | ====== Configurazione del progetto - pom.xml ====== | ||
- | |||
- | ===== Configurazione per il deployment ===== | ||
- | |||
- | Per poter effettuare direttamente il deploy degli artefatti di un progetto tramite maven, è necessario aggiungere la seguente specifica all' | ||
- | <code xml> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | Se si sono specificate le proprie credenziali nel file '' | ||
- | |||
- | ===== Altre configurazioni utili ===== | ||
- | |||
- | ==== Properties ==== | ||
- | |||
- | Per specificare delle property, magari richieste da un qualche plugin per abilitare delle funzionalità aggiuntive, è possibile specificarle all' | ||
- | |||
- | Ad esempio, per specificare di considerare i sorgenti come codificati in ISO-8859-1 invece di UTF-8 durante la build: | ||
- | |||
- | <code xml> | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | |||
- | ==== Configurazione delle dipendenze ==== | ||
- | |||
- | Le dipendenze vanno specificate all' | ||
- | Un esempio di elemento ''< | ||
- | |||
- | <code xml> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | ====== Riferimenti esterni ====== | ||
- | |||
- | [[http:// | ||
- | |||
- | [[https:// | ||
- | |||
- | [[https:// | ||
- | |||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | |||
/data/attic/documentazione_3di_riservata/manuali_sviluppo/maven.1440514629.txt.gz · Ultima modifica: (modifica esterna)