Hi all,
I use this bash script to upgrade my local maven2 repository
each time a new version of Restlet comes up.
Some of you might find it useful.
-Vincent.
#!/bin/bash
#
# This script installs a Restlet disrtribution into a local (filesystem)
# maven2 repository.
#
# Usage: restlet2mvn.bsh <path to Restlet distribution > <path to local maven
repository>
#
if [ $# -le 1 ]; then
echo "Usage: restlet2mvn.bsh <path to Restlet distribution > <path to local
maven repository>"
exit 1;
fi
RESTLET_DIST=$1
MAVEN_REPOSITORY=$2
MVN=mvn
if [ ! -e $RESTLET_DIST ]
then
echo "Restlet distribution not found: $RESTLET_DIST"
exit 1;
fi
if [ ! -e $MVN_REPO ]
then
echo "Maven repository not found: $MVN_REPO"
exit 1;
fi
LIB_DIR=$RESTLET_DIST/lib
POMS_DIR=$RESTLET_DIST/lib/poms
poms=`ls $POMS_DIR/*.pom`
for pom in $poms
do
# restlet/lib/poms/foo.pom -> restlet/lib/foo.jar
jar=`echo $pom | sed s/.pom$/.jar/g | sed s/poms\\\///g`
if [ -e $jar ]
then
# Extract the group, artifact id, and version number from the POM:
# We assume that the first <groupId>, <artifactId>, <version> tags found in
the pom
# contain the module's group id, artifact id, and version #.
# This will break if the pom contains commented out tags:
# <groupId>foo<.groupId>
# <!-- <artifactId>bar</artifactId> -->
# <artifactId>bar</artifactId>
# <versio>1.0</version>
group=` grep --regexp '<groupId>.*</groupId>' --max-count=1 $pom | sed
's/[[:space:]]*<[^><]*>[[:space:]]*//g' `
artifact=` grep --regexp '<artifactId>.*</artifactId>' --max-count=1 $pom |
sed 's/[[:space:]]*<[^><]*>[[:space:]]*//g' `
version=` grep --regexp '<version>.*</version>' --max-count=1 $pom | sed
's/[[:space:]]*<[^><]*>[[:space:]]*//g' `
# Now deploy the module
$MVN deploy:deploy-file -DgroupId=$group \
-DgeneratePom=false \
-DpomFile=$pom \
-DartifactId=$artifact \
-Dversion=$version \
-Dpackaging=jar \
-Dfile=$jar \
-DrepositoryId=local-repository \
-Durl=file://$MAVEN_REPOSITORY
fi
done
exit