Mostra paginaRevisioni precedentiPuntano quiEsporta in PDFTorna su Questa pagina è in sola lettura. Puoi visualizzare il sorgente, ma non puoi modificarlo. Contatta l'amministratore se pensi che ci sia un errore. ===== Installazione di Apache Maven ===== ==== Cos'è Apache Maven ==== {{ :gwinstguide:idxinstguide:1200px-maven_logo.svg.png?200|}} Apache Maven è uno strumento di gestione di progetti software basati su Java e build automation. Maven usa un costrutto conosciuto come Project Object Model (POM), ovvero un file XML che descrive le dipendenze fra il progetto e le varie versioni di librerie necessarie al progetto, nonché le dipendenze fra le librerie stesse. Ciò significa che Maven effettua automaticamente il download delle librerie Java e dei plug-in dai vari repository: questo permette di recuperare in modo uniforme i diversi file JAR e di poter spostare il progetto in maniera indipendente da un ambiente all'altro avendo la sicurezza di utilizzare sempre le stesse versioni delle librerie. Tutto ciò è utile nella creazione autonoma dei file WAR per i diversi progetti di sviluppo o di commessa. ==== Prerequisiti per l'installazione ==== Per l'installazione di Maven è necessario assicurarsi che il Java Development Kit (JDK) sia installato e che la variabile d'ambiente JAVA_HOME sia configurata. Questo può essere fatto in uno dei seguenti modi: * Aprire il **Pannello di controllo**, scegliere la sezione **Programmi**, poi **Programmi e funzionalità** e controllare se una versione di Java o del JDK compaiono tra i programmi installati. {{ :gwinstguide:idxinstguide:jdk_installed_1.png?600 |}} Oppure: * Aprire il prompt dei comandi e digitare <code> java -version </code> Se il comando è riconosciuto e compaiono le informazioni della versione, allora vuol dire che Java è installato correttamente e anche la variabile d'ambiente è stata impostata nel modo giusto. Oppure: * Aprire il **Pannello di controllo**, poi **Sistema e sicurezza**, poi ancora **Sistema** e, infine, aprire il collegamento **Impostazioni di sistema avanzate**: a questo punto si aprirà una finestra, come è visibile nella figura seguente. {{ :gwinstguide:idxinstguide:jdk_installed_2.png?600 |}} Selezionare il pulsante **Variabili d'ambiente...** e controllare che, tra le variabili di sistema, esista una variabile **JAVA_HOME** con associato il percorso corretto. === Installazione del JDK e configurazione della variabile JAVA_HOME=== Se il JDK non risulta installato, è necessario eseguire il download del software al seguente link: [[https://www.oracle.com/it/java/technologies/javase/jdk11-archive-downloads.html]]. Una volta scaricata la versione adeguata del JDK (la versione attualmente in uso è la 11), eseguire il file e installare il software. Terminata la procedura, JDK risulterà installato nel computer, per esempio nel percorso C:\Program Files\Java\jdk-11.0.2. Quello che rimane da fare è configurare la variabile d'ambiente **JAVA_HOME**. Per fare questo, seguire il percorso per aprire la finestra di modifica delle variabili d'ambiente (**Pannello di controllo** -> **Sistema e sicurezza** -> **Sistema** -> **Impostazioni di sistema avanzate** -> **Variabili d'ambiente...**). Se la variabile di sistema esiste, controllare che il percorso a cui fa riferimento sia quello giusto. Se, invece, non esiste, attraverso il pulsante **Nuova...** creare una nuova variabile che abbia come nome **JAVA_HOME** e come valore il percorso in cui è stato installato il JDK. {{ :gwinstguide:idxinstguide:java_home_path_var.png?nolink&400 |}} ==== Come installare Apache Maven ==== Scaricare la versione binary del software al seguente link [[https://maven.apache.org/download.cgi]]. Una volta scaricato il file, deve essere estratto in un percorso adatto, ad esempio all'interno di C:\Program Files. Infine, aggiungere alla variabile di sistema Path il percorso scelto. Come è mostrato in figura, una volta selezionata la variabile di sistema Path, basta cliccare sul pulsante **Modifica...** e, nella finestra che si apre, cliccare su **Nuovo** e poi aggiungere il giusto percorso. {{ :gwinstguide:idxinstguide:maven_path_var.png?600 |}} Quando Apache Maven è stato installato, viene creata una cartella di repository locale, chiamata .m2\repository. Essa viene salvata di default nel percorso C:\Users\{your-username}\.m2\repository ed è importante perché, quando un progetto Maven viene compilato, vengono scaricate e salvate all'interno di questa cartella tutte le librerie necessarie, le dipendenza del progetto e i file JAR dei plugin. === NOTE IMPORTANTI === Con le ultime versioni, dalla 3.8.1, Maven esce con una configurazione di default, non aggirabile, che blocca tutte le chiamate HTTP (insicure) ai repository. Il nostro [[http://artifactory.geowebframework.com/|artifactory]] non è attualmente in HTTPS. Vengono quindi, al lancio di comandi come in fase di mvn package, errori tipo <code>from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories</code> Esempio errore: <code> [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.450 s [INFO] Finished at: 2021-04-07T01:08:28-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project MassBank2NIST: Could not resolve dependencies for project MassBank2NIST:MassBank2NIST:jar:0.0.2-SNAPSHOT: Failed to collect dependencies at edu.ucdavis.fiehnlab.splash:core:jar:1.8: Failed to read artifact descriptor for edu.ucdavis.fiehnlab.splash:core:jar:1.8: Could not transfer artifact edu.ucdavis.fiehnlab.splash:core:pom:1.8 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [EBI (http://www.ebi.ac.uk/intact/maven/nexus/content/repositories/ebi-repo/, default, releases+snapshots), releases (http://gose.fiehnlab.ucdavis.edu:55000/content/groups/public, default, releases+snapshots)] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException </code> La cosa migliore sarebbe aggiornare i nostri repository allo standard HTTPS. Il meccanismo del mirror check non è attualmente disabilitabile in alcuna maniera. E' previsto un tag <mirrors> da configurare sotto il proprio setting.xml, come descritto sul [[https://maven.apache.org/guides/mini/guide-mirror-settings.html#|sito ufficale]] e vari workaround [[https://stackoverflow.com/questions/66980047/maven-build-failure-dependencyresolutionexception|qui]], ma non sembrano funzionare per la nostra configurazione. In attesa di una risoluzione si consiglia quindi vivamente di utilizzare una versione precedente alla 3.8.1 come la [[https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip|apache-maven-3.6.3-bin.zip]] ==== Modificare il file settings.xml ==== Maven fornisce un alto livello di customizzazione e, infatti, possono essere definite diverse variabili per decidere come il servizio dovrà lavorare. Il file settings.xml è un file di configurazione messo a disposizione proprio per personalizzare le impostazioni di Maven. Esso contiene tutti gli elementi che vengono usati per definire l'esecuzione di Maven a livello globale, e non del singolo progetto: tali elementi sono descritti come tag XML e includono valori come l'ubicazione del repository locale, i server di repository remoti e le informazioni di autenticazione. === Ottenere la password da Artifactory === Prima di procedere alla modifica, è necessario recuperare la password criptata che viene fornita da Artifactory tramite il seguente link: [[http://artifactory.geowebframework.com/artifactory/webapp/#/profile]]. Cliccando sul link, si apre una finestra di accesso: per entrare nel sito, è sufficiente inserire come username quello aziendale (nel formato //nome.cognome//) e come password quella di accesso al pc aziendale. A questo punto, viene aperta una nuova pagina, in cui deve essere inserita nuovamente la password: {{ :custom:artifactory_unlock_psw.png?600 |}} Cliccare, infine, sul pulsante **Unlock**: in questo modo la password criptata verrà generata e sarà possibile copiarla negli appunti e quindi salvarla in un file di appoggio. {{ :custom:artifactory_copy_encrypted_psw.png?600 |}} === Modifica del file di configurazione === Solitamente, esistono due percorsi in cui può trovarsi il file settings.xml: * La cartella in cui è stato installato Maven: {MAVEN_HOME}/conf/settings.xml * La cartella dell'utente: {USER}/.m2/settings.xml Se esistono entrambi i file, si noti che le impostazioni relative alla cartella dell'utente hanno maggiore priorità delle altre. Se, invece, nella cartella di utente non esiste tale file, è necessario crearlo. Trovato o creato il file di configurazione, si deve modificare, al suo interno, il blocco **servers** e il blocco **profiles**. (per l'ultima versione del file: https://gitlab.com/geowebframework/geowebframework/-/raw/master/ci_settings.xml?inline=false) Nel tag **servers** vanno aggiunte le seguenti informazioni: <code xml> <servers> <server> <id>gw-release</id> <username>mario.rossi</username> <password>PasswordDiMarioRossi</password> </server> <server> <id>gw-snapshot</id> <username>mario.rossi</username> <password>PasswordDiMarioRossi</password> </server> <server> <id>archetype</id> <username>mario.rossi</username> <password>PasswordDiMarioRossi</password> </server> <server> <id>gw-hotfix</id> <username>mario.rossi</username> <password>PasswordDiMarioRossi</password> </server> </servers> </code> Si noti che i tag **username** dovranno corrispondere al proprio utente aziendale e nei tag **password** dovrà essere incollata la password criptata che è stata precedentemente generata. Inserire, poi, all'interno del tag **profiles**, quanto segue: <code xml> <profiles> <profile> <id>artifactory</id> <repositories> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>archetype</id> <url>http://artifactory.geowebframework.com/artifactory/gw-release</url> </repository> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>gw-release</id> <name>gw-release</name> <url>http://artifactory.geowebframework.com/artifactory/gw-release</url> </repository> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>gw-hotfix</id> <name>gw-hotfix</name> <url>http://artifactory.geowebframework.com/artifactory/gw-hotfix</url> </repository> <repository> <releases> <enabled>false</enabled> </releases> <id>gw-snapshots</id> <name>gw-snapshots</name> <url>http://artifactory.geowebframework.com/artifactory/gw-snapshots</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <snapshots> <enabled>false</enabled> </snapshots> <id>gw-release</id> <name>libs-release</name> <url>http://artifactory.geowebframework.com/artifactory/libs-release</url> </pluginRepository> <pluginRepository> <releases> <enabled>false</enabled> </releases> <id>snapshots</id> <name>libs-snapshot</name> <url>http://artifactory.geowebframework.com/artifactory/libs-snapshot</url> </pluginRepository> </pluginRepositories> </profile> </profiles> </code> Infine, aggiungere il tag **activeProfiles** e il suo contenuto: <code xml> <activeProfiles> <activeProfile>artifactory</activeProfile> </activeProfiles> </code> gwinstguide/idxinstguide/installazione_maven.txt Ultima modifica: 2023/05/16 09:26da giada.podelvento