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/29 08:55] – [Configurazione di maven] 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**, | ||
| - | |||
| - | ==== Generazione del sito ==== | ||
| - | |||
| - | Maven integra già di default la possibilità di generare un sito web con le informazioni relative al progetto. Eseguendo il comando | ||
| - | < | ||
| - | su un qualsiasi progetto, si otterrà la produzione di un vero e proprio sito web accessibile alla pagina target/ | ||
| - | |||
| - | Utilizzando plugin aggiuntivi è possibile arricchire il contenuto del sito in maniera pressoché automatica, aggiungendo, | ||
| - | |||
| - | Oltre al contenuto generato automaticamente è possibile aggiungere dei propri contenuti andando a specificare un proprio descrittore del sito. Le pagine possono essere scritte in vari formati, tra i quali XHTML e APT (Almost Plain Text). | ||
| - | |||
| - | |||
| - | 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:// | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | [[http:// | ||
| - | |||
| - | [[http:// | ||
| - | |||
| - | |||
/data/attic/documentazione_3di_riservata/manuali_sviluppo/maven.1440831343.txt.gz · Ultima modifica: (modifica esterna)