
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Introduzione, confronto con Ant ed esempio di funzionamento per il progetto creato dalla Apache Foundation.
Maven è un progetto open source, sviluppato dalla Apache, che permette di organizzare in modo molto efficiente un progetto java.
Può essere paragonato all’altro progetto più conosciuto della Apache, Ant, ma fornisce funzionalità più avanzate. I vantaggi principali di Maven sono i seguenti:
È possibile scaricare il progetto dal sito ufficiale, la versione attualmente disponibile è la 2.0.9. Per poter installarlo è sufficiente scompattare lo zip, ad esempio nella cartella C:Maven, e aggiungere la variabile di ambiente MAVEN_HOME (MAVEN_HOME=C:Maven).
Per eseguire i comandi messi a disposizione da Maven è necessario aggiungere anche la cartella bin alla variabile d’ambiente PATH (PATH=…%MAVEN_HOME%bin;). Nella directory %MAVEN_HOME%/conf è presente il file di configurazione di Maven, il file setting.xml. In questo file è definita anche la directory locale (repository) nella quale maven gestirà le librerie (localRepository). Di default, il localRepository si trova in “/home/${user}/.m2/repository” sotto linux e in “C:Documents and Settings${user}.m2repository” sotto Windows.
Per verificare che l’installazione di Maven sia andata a buon fine, è sufficiente lanciare il comando “mvn” da riga di comando. I componenti principali di Maven sono i seguenti:
I comandi Maven hanno la seguente struttura:
mvn <nome-plugin>:[<nome_goal>] [{<parametro>}]
Ciascun plugin mette a disposizione dei goal specifici. Ciascun goal, a sua volta, riceve in ingresso specifici parametri, facoltativi o obbligatori.
Maven permette di creare un progetto a partire da un template che stabilisce la struttura base delle cartelle e dei file che devono essere creati. I principali template disponibili sono i seguenti:
Come esempio d’uso creiamo un semplicissimo progetto Web compatibile con Maven, che quindi mantiene una netta separazione tra i sorgenti java e le pagine Web.
Per creare una struttura (archetype) del progetto bisogna creare una directory che conterrà il progetto stesso (ad esempio C:HtmlMaven) e poi eseguire il comando:
mvn archetype:create -DgroupId=it.html -DartifactId=javaModule -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0
HtmlMavenjavaModulepom.xml HtmlMavenjavaModulesrc HtmlMavenjavaModulesrcmain HtmlMavenjavaModulesrcmainjava HtmlMavenjavaModulesrcmainjavait HtmlMavenjavaModulesrcmainjavaithtml HtmlMavenjavaModulesrcmainjavaithtmlApp.java HtmlMavenjavaModulesrctest HtmlMavenjavaModulesrctestjava HtmlMavenjavaModulesrctestjavait HtmlMavenjavaModulesrctestjavaithtml HtmlMavenjavaModulesrctestjavaithtmlAppTest.java
Poichè abbiamo utilizzato il template maven-archetype-quickstart per generare lo scheletro, viene creata anche una classe di esempio con la corrispondente classe per il test di junit (AppTest.java) che è possibile eliminare.
Infine eseguiamo il comando:
mvn archetype:create -DgroupId=it.html -DartifactId=webModule -DarchetypeArtifactId=maven-archetype-webapp
con il quale creiamo la seguente struttura per il modulo java:
HtmlMavenwebModulepom.xml HtmlMavenwebModulesrc HtmlMavenwebModulesrcmain HtmlMavenwebModulesrcmainresources HtmlMavenwebModulesrcmainwebapp HtmlMavenwebModulesrcmainwebappindex.jsp HtmlMavenwebModulesrcmainwebappWEB-INF HtmlMavenwebModulesrcmainwebappWEB-INFweb.xml
Come è possibile notare abbiamo due file pom.xml, quindi 2 progetti Maven indipendenti. È necessario adesso creare un terzo progetto composto dai due precedenti: il modulo con il sorgente java e il modulo con il sorgente Web.
Per far ciò inseriamo nella directory principale HtmlMaven un file pom.xml con il seguente contenuto:
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”> <name>Html Maven Project</name> <modelVersion>4.0.0</modelVersion> <groupId>it.html</groupId> <version>1.0</version> <artifactId>html</artifactId> <packaging>pom</packaging> <modules> <module>javaModule</module> <module>webModule</module> </modules> </project>
Così facendo, quando eseguiremo un comando maven sul progetto principale verrà eseguito anche sui suoi moduli.
Adesso dobbiamo indicare che il modulo Web dipende dal modulo java. Il jar del modulo java deve infatti essere contenuto nelle librerie del war dell’applicazione Web.
Aggiungiamo al file pom.xml del modulo Web nella sezione dependencies, il seguente frammento XML:
<dependency> <groupId>it.html</groupId> <artifactId>javaModule</artifactId> <version>1.0</version> </dependency>
Adesso supponiamo di voler includere nel nostro progetto la libreria log4j. Per farlo, dobbiamo cercare queste librerie in uno dei repository pubblici, ai quali maven si collega per scaricare tutti i pacchetti di cui necessita, comprese le dipendenze di ciascuno di essi.
Cerchiamo le librerie di cui abbiamo bisogno, ad esempio nel repository ibiblio.
La struttura delle cartelle dei repository, segue la sintassi groupId/arifactId/version.
Per inserire la dipendenza dobbiamo quindi aggiungere:
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.13</version> </dependency>
Fatto ciò possiamo finalmente compilare il nostro progetto ed ottenere il war pronto per essere deployato.
Spostiamoci nella root del nostro progetto e lanciamo il comando:
La prima volta che il progetto viene compilato, maven scarica tutte le librerie dipendenti necessarie alla compilazione. Questa fase è un po’ lunga, ma le prestazioni non saranno sempre le stesse. Infatti, le compilazioni successive saranno molto più veloci perchè maven non avrà più bisogno di scaricare dal repository le librerie.
Quando maven avrà finito troveremo nei due moduli una cartella ‘target’ che contiene l’esito delle compilazioni.
Al termine possiamo notare che ciascun modulo contiene la cartella target con il risultato della compilazione.
Nel modulo Web troviamo il file war pronto per il deploy. Se lo apriamo possiamo notare come nella directory WEB-INF/lib ci siano le due librerie dipendenti, quella relativa al modulo java e quella relativa a log4j.
Se vuoi aggiornamenti su Maven, organizzazione dei progetti Java inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Sandro Paganotti ci parla di WbRTC e delle sue potenzialità per gli sviluppatori.
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
Come creare database e collection, inserire, estrarre, aggiornare e rimuovere dati da una base di dati MongoDB con Python
Impariamo ad utilizzare Takamaka, una blockchain Java Full Stack, per scrivere codice Java installabile ed eseguibile su una blockchain
Rivisitazione basata su jQuery della celebre tecnica inventata da Dave Shea per l’ottimizzazione di menu CSS
Guida a Red Hat Quarkus, uno stack Java Kubernetes nativo pensato per applicazioni serverless e per la realizzazione di microservizi rapidi ed ottimizzati. Una piattaforma concepita per accedere in ambiente Cloud mettendo a disposizione un framework orientato ai microservizi, come ad esempio Spring Boot o Micronaut