Stephen Connolly / Quick and very Dirty Mavenizer

Created Tue, 26 Apr 2011 00:00:00 +0000 Modified Tue, 26 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