gwinstguide:idxinstguide:installazione_maven

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
gwinstguide:idxinstguide:installazione_maven [2020/03/17 15:40]
mariasole.angelucci
gwinstguide:idxinstguide:installazione_maven [2023/05/16 09:26] (versione attuale)
giada.podelvento [Prerequisiti per l'installazione]
Linea 1: Linea 1:
 ===== Installazione di Apache Maven ===== ===== Installazione di Apache Maven =====
 ==== Cos'è 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. Maven è utile poiché ​effettua automaticamente il download delle librerie Java e dei plug-in dai vari repository: questo permette di recuperare in modo uniforme i vari 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.+{{ :​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 ==== ==== 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: 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 |}} + ​* ​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 |}} 
-  ​- Aprire il prompt dei comandi e digitare <​code>​+ 
 +Oppure: 
 + 
 +  ​* Aprire il prompt dei comandi e digitare <​code>​
 java -version 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. </​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.
-  - 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. ​+ 
 +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 |}} {{ :​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.+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=== === 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/​java/​technologies/​javase-downloads.html]]. ​+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, eseguire il file e installare il software. Terminata la procedura, JDK risulterà installato nel computer, per esempio nel percorso C:\Program Files\Java\jdk1.8.0_102. Quello che rimane da fare è configurare la variabile d'​ambiente JAVA_HOME. ​+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. +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?​400 |}}+{{ :​gwinstguide:​idxinstguide:​java_home_path_var.png?​nolink&400 |}}
  
 ==== Come installare Apache Maven ==== ==== 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 ​della cartella \bin, che si trova proprio all'​interno della cartella precedentemente estratta. 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.+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 |}} {{ :​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. 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.1584456043.txt.gz
  • Ultima modifica: 2020/03/17 15:40
  • da mariasole.angelucci