Aspettando Maven…

Sto preparando un breve articolo che raccoglierà alcune info basilari per utlizzare Maven, ma nel frattempo che trovo il tempo di risistemare i miei appunti vi posto un piccolo script che ho realizzato.

Questo script SH si occupa di creare 2 progetti, uno che termina con “-lib” che conterrà le classi java del nostro applicativo ed uno con estensione “-web” che conterrà invece la parte web. Inoltre include già la configurazione per utilizzare l’application server JETTY in versione embedded.

Per utilizzare lo script posizionatevi nella cartella dove volete creare il progetto principale e digitate:

./mavenwebtool.sh [nomeCartellaProgetto] [group-id] [artifact-if] [0.1]

Dove dovrete sosituire i valori tra quadre come segue:

[nomeCartellaProgetto]: il nome della cartella dove verranno creati i due sotto progetti
[group-id]: il nome del gruppo del progetto
[artifact-id] il nome dell’artefatto, a questa sarà aggiunto in automatico “-web” e “-lib”
[1.0] la versione di partenza

Fatto questo all’interno della cartella [nomeCartellaProgetto] saranno create le sotto cartelle [artifact-id]-web e [artifact-id]-lib.

Se digitiamo mvn clean install e attendiamo che Maven scarica tutto ciò che ha bisogno (se è la prima volta che usate Maven non vi spaventate, dopo non impiegherà tutto questo tempo) e compila i due progetti, se tutto sarà andato bene apparirà a video la scritta BUILD SUCCEFUL.

Ora se ci posizioniamo sotto la cartella [artifact-id]-web e digitiamo mvn jetty:run partirà una versione embedded dell’applicazion server Jetty e accedendo all’indirizzo http://localhost:8000/%5Bartifact-id%5D vedremo un piacevole Hello World, questo, naturalmente, se tutto ha funzionato correttamente:D

Visto che non posso allegare file vi incollo il testo del file sh, per utilizzarlo create un nuovo file e chiamatelo mavenwebtool.sh e incollateci il testo che trovate qui sotto.

#!/bin/bash
#

MAIN_DIR=$1
GROUP_ID=$2
ARTIFACT_ID=$3
VERSION=$4

function usage(){
echo “Please insert all required parameters”
echo
echo “use: `basename ${0}` {Main di} {Group ID} {Artifact ID} {Version}”
echo
exit 1
}

function prepareDir(){
mkdir $MAIN_DIR
cd $MAIN_DIR
}

function flushOperations(){
cd –
}

function createLib(){
echo “Create new maven java LIB project”
mvn archetype:create -DgroupId=$GROUP_ID -DartifactId=$ARTIFACT_ID-lib -Dversion=$VERSION
}

function createWeb(){
echo “Create new maven java WEB project”
mvn archetype:create -DgroupId=$GROUP_ID -DartifactId=$ARTIFACT_ID-web -DarchetypeArtifactId=maven-archetype-webapp
}

function createMainPomXml(){
echo “Create main pom.xml”
echo “<project>” >>  pom.xml
echo ”   <modelVersion>4.0.0</modelVersion>” >>  pom.xml
echo ”   <groupId>$GROUP_ID</groupId>” >>  pom.xml
echo ”   <version>${VERSION}</version>” >>  pom.xml
echo ”   <artifactId>$ARTIFACT_ID</artifactId>” >>  pom.xml
echo ”   <packaging>pom</packaging>” >>  pom.xml
echo ”   <modules>” >>  pom.xml
echo ”      <module>$ARTIFACT_ID-lib</module>” >>  pom.xml
echo ”      <module>$ARTIFACT_ID-web</module>” >>  pom.xml
echo ”   </modules>” >>  pom.xml
echo “</project>” >>  pom.xml
}

function reCreateWebPomXml(){
echo “<project>” > $ARTIFACT_ID-web/pom.xml
echo “<modelVersion>4.0.0</modelVersion>” >> $ARTIFACT_ID-web/pom.xml
echo “<groupId>${GROUP_ID}</groupId>” >> $ARTIFACT_ID-web/pom.xml
echo “<artifactId>${ARTIFACT_ID}-web</artifactId>” >> $ARTIFACT_ID-web/pom.xml
echo “<packaging>war</packaging>” >> $ARTIFACT_ID-web/pom.xml
echo “<version>${VERSION}</version>” >> $ARTIFACT_ID-web/pom.xml
echo “<name>${ARTIFACT_ID} WEB</name>” >> $ARTIFACT_ID-web/pom.xml
echo “<url>http://maven.apache.org</url>&#8221; >> $ARTIFACT_ID-web/pom.xml
echo “<dependencies>” >> $ARTIFACT_ID-web/pom.xml
echo “<dependency>” >> $ARTIFACT_ID-web/pom.xml
echo “<groupId>junit</groupId>” >> $ARTIFACT_ID-web/pom.xml
echo “<artifactId>junit</artifactId>” >> $ARTIFACT_ID-web/pom.xml
echo “<version>3.8.1</version>” >> $ARTIFACT_ID-web/pom.xml
echo “<scope>test</scope>” >> $ARTIFACT_ID-web/pom.xml
echo “</dependency>” >> $ARTIFACT_ID-web/pom.xml
echo “<dependency>” >> $ARTIFACT_ID-web/pom.xml
echo “<groupId>${GROUP_ID}</groupId>” >> $ARTIFACT_ID-web/pom.xml
echo “<artifactId>${ARTIFACT_ID}-lib</artifactId>” >> $ARTIFACT_ID-web/pom.xml
echo “<version>${VERSION}</version>” >> $ARTIFACT_ID-web/pom.xml
echo “</dependency>” >> $ARTIFACT_ID-web/pom.xml
echo “</dependencies>” >> $ARTIFACT_ID-web/pom.xml
echo “<build>” >> $ARTIFACT_ID-web/pom.xml
echo “<finalName>${ARTIFACT_ID}-web</finalName>” >> $ARTIFACT_ID-web/pom.xml

echo “<plugins>” >> $ARTIFACT_ID-web/pom.xml
echo “<plugin>” >> $ARTIFACT_ID-web/pom.xml
echo “<groupId>org.mortbay.jetty</groupId>” >> $ARTIFACT_ID-web/pom.xml
echo “<artifactId>maven-jetty-plugin</artifactId>” >> $ARTIFACT_ID-web/pom.xml
echo “<version>6.1.1</version>” >> $ARTIFACT_ID-web/pom.xml
echo “<configuration>” >> $ARTIFACT_ID-web/pom.xml
echo “<contextPath>/${ARTIFACT_ID}</contextPath>” >> $ARTIFACT_ID-web/pom.xml
echo “<connectors>” >> $ARTIFACT_ID-web/pom.xml
echo “<connector implementation=\”org.mortbay.jetty.nio.SelectChannelConnector\”>” >> $ARTIFACT_ID-web/pom.xml
echo “<port>8000</port>” >> $ARTIFACT_ID-web/pom.xml
echo “<maxIdleTime>60000</maxIdleTime>” >> $ARTIFACT_ID-web/pom.xml
echo “</connector>” >> $ARTIFACT_ID-web/pom.xml
echo “</connectors>” >> $ARTIFACT_ID-web/pom.xml
echo “<scanIntervalSeconds>10</scanIntervalSeconds>” >> $ARTIFACT_ID-web/pom.xml
echo “<requestLog implementation=\”org.mortbay.jetty.NCSARequestLog\”>” >> $ARTIFACT_ID-web/pom.xml
echo “<filename>target/yyyy_mm_dd.request.log</filename>” >> $ARTIFACT_ID-web/pom.xml
echo “<retainDays>90</retainDays>” >> $ARTIFACT_ID-web/pom.xml
echo “<append>true</append>” >> $ARTIFACT_ID-web/pom.xml
echo “<extended>false</extended>” >> $ARTIFACT_ID-web/pom.xml
echo “<logTimeZone>GMT</logTimeZone>” >> $ARTIFACT_ID-web/pom.xml
echo “</requestLog>” >> $ARTIFACT_ID-web/pom.xml
echo “</configuration>” >> $ARTIFACT_ID-web/pom.xml
echo “<dependencies>” >> $ARTIFACT_ID-web/pom.xml
echo “<dependency>” >> $ARTIFACT_ID-web/pom.xml
echo “<groupId>log4j</groupId>” >> $ARTIFACT_ID-web/pom.xml
echo “<artifactId>log4j</artifactId>” >> $ARTIFACT_ID-web/pom.xml
echo “<version>1.2.13</version>” >> $ARTIFACT_ID-web/pom.xml
echo ” </dependency>” >> $ARTIFACT_ID-web/pom.xml
echo “</dependencies>” >> $ARTIFACT_ID-web/pom.xml
echo “</plugin>” >> $ARTIFACT_ID-web/pom.xml
echo ” </plugins>” >> $ARTIFACT_ID-web/pom.xml

echo “</build>” >> $ARTIFACT_ID-web/pom.xml
echo “</project>” >> $ARTIFACT_ID-web/pom.xml
}

if [ “$#” != 4 ]
then
usage
else
prepareDir
createLib
createWeb
createMainPomXml
reCreateWebPomXml
flushOperations
fi

Annunci

~ di jesty su luglio 7, 2008.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: