Stephen Connolly / Quick and very Dirty Mavenizer

Created Fri, 01 Apr 2011 00:00:00 +0000 Modified Fri, 01 Apr 2011 00:00:00 +0000
124 Words

The following quick and dirty bash script will take a pom and a jar and fake a maven build based on the source files for that that can be found in the current directory.

Really useful when running mvn dependency:analyze on a project you are validating POMs for.

#!/bin/bash

if [ “A$3” == “A” ]

then

echo “Syntax: $0 pomfile jarfile dir”

return

fi

rm -rvf “$3/src”

mkdir -p “$3/src/main/java”

cp -f “$1” “$3/pom.xml”

for name in $(jar -tf “$2” | sed -n -e “/\$/d;s/\.class/.java/p”)

do

echo -n “Looking for $name … "

loc="$(find . | fgrep $name | head -n 1)”

if [ “A$loc” == “A” ]

then

echo “NOT FOUND”

else

echo “$loc”

mkdir -p “$3/src/main/java/$(dirname $name)”

cp “$loc” “$3/src/main/java/$name”

fi

done